회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인PC가 아닐 경우 타인이 로그인할 수 있습니다.
PC를 여러사람이 사용하는 공공장소에서는 체크하지 마세요.
소셜네트워크 서비스를 통해서 로그인하시면 별도의 로그인 절차없이 회원서비스를 이용하실 수 있습니다.


최근 게시물

1.노션에서 작성 중

1.노션에서 작성 중

개편하기 전까지 노션에서 작성 중

2024.04.04//read more

2.ChatGPT

2.ChatGPT

OpenAI로 대규모 언어 모델대화형...

2023.03.16//read more

3.노코딩 게임 엔진 - 빌..

3.노코딩 게임 엔진 - 빌..

빌드 지원안드로이드iOS윈도우즈특이사...

2023.03.14//read more

4.(완료) 미접속 회원 정..

4.(완료) 미접속 회원 정..

[완료] 36명의 회원을 정리하였습니...

2023.02.16//read more

5.매뉴얼 플러스 - 전자제..



안정적인 DNS 서비스 DNSEver
DNS Powered by DNSEver.com


조건문 if ~ else

푸딩뱃살 | 2015.10.29 15:08 | 조회 1969
C++ 조건문 if ~ else
조건식에 해당하는 특정 조건이 참일 경우에만 특정 문장을 실행하도록 하는 "제어문"

1. 단일 if문 : 하나의 조건식이 참일 경우에만 특정 문장을 실행함

[문법]
문장1
if (조건식) {
    문장2;
}
    문장3;

1. 조건식이 참일 경우의 문장 실행 순서 : 문장1 -> 문장2 -> 문장3
2. 조건식이 거짓일 경우 문장 실행 순서 : 문장1 -> 문장3

몬스터 공격력을 입력받아 플레이어의 HP를 출력
#include <iostream>
#include <string>

using namespace std;

void main() {
    // 렌덤값 추출
    srand((unsigned int)time(NULL));

    // 플레이어를 공격하는 몬스터 공격력

    int hp = 100;
    int damage;

    cout << "몬스터 공격력 : "; cin >> damage;

    hp -= damage;  // hp = hp - damage;
    cout << "몬스터에게 " << damage << " 만큼의 공격을 당함" << endl;


    // 사망에 대한 조건식 - hp가 0이하일 때 cout 출력
    if (hp <= 0) {
        cout << "hp가 0이 되어 사망" << endl;
    }

    // 플레이어의 hp가 ?이 남아 생존하였다.
    
    // 생존에 대한 조건식 - hp가 0보다 크면 cout 출력
    if (hp > 0) {
        cout << "hp가 " << hp << "남아 생존" << endl;
    }

    cout << "-----------" << endl;

    // 상반 관계
    // 사망과 생존은 상반 관계
    // 사망이 true면 생존은 false, 생존이 true면 사망은 false

    if (hp <= 0) {  // 사망에 대한 조건식
        cout << "hp가 0이 되어 사망" << endl;
    }
    else {  // 생존에 대한 조건식
            // 사망하지 않았다면 플레이어는 생존하고 있으므로 조건이 필요없음
        cout << "hp가 " << hp << "남아 생존" << endl;
    }

}

버프 유무를 입력하여 플레이어 버프 여부 출력
#include <iostream>
#include <string>

using namespace std;

void main() {
    int 방어력 = 50;
    int 공격력 = 70;

    bool 방어버프유무 = false;
    bool 공격버프유무 = false;

    cout << "방어력 : " << 방어력 << ", 공격력 : " << 공격력 << endl;

    cout << "방어 버프를 받을까요? (1.예 0.아니오) : "; cin >> 방어버프유무;
    cout << "공격 버프를 받을까요? (1.예 0.아니오) : "; cin >> 공격버프유무;

    if (방어버프유무 == true) {
        방어력 = 방어력 + 20;
        cout << "머리위에 방패모양의 이펙트가 보이면서 방어력이 증가" << endl;
    }

    if (공격버프유무 == true) {
        공격력 += 30;
        cout << "머리위에 검모양의 이펙트가 보이면서 방어력이 증가" << endl;
    }

    cout << "방어력 : " << 방어력 << ", 공격력 : " << 공격력 << endl;
}

캐릭터의 레벨이 30이상이고 캐릭터 보유갯수가 5개 이상이면
"축하합니다! 이벤트에 참가하실 수 있습니다." 출력
캐릭터의 레벨이 30미만이고 캐릭터 보유갯수가 5개 이하면
"죄송합니다! 이벤트에 참가 조건이 부족합니다." 출력
#include <iostream>
#include <string>

using namespace std;

void main() {

    int level;
    int charAe;

    cout << "레벨 : "; cin >> level;
    cout << "캐릭터보유 : "; cin >> charAe;

    if (level >= 30 && charAe >= 5){
        cout << "축하합니다! 이벤트에 참가하실 수 있습니다." << endl;
    }
    else {
        cout << "죄송합니다! 이벤트에 참가 조건이 부족합니다." << endl;
    }

    // if문의 조건은 true와 false만 사용되어 bool 자료형을 사용해도 된다.
    bool event = (level >= 30) && (charAe >= 5);

    if (event){
        cout << "축하합니다! 이벤트에 참가하실 수 있습니다." << endl;
    }
    else {
        cout << "죄송합니다! 이벤트에 참가 조건이 부족합니다." << endl;
    }

}
[문제]
플레이어의 공격 데미지를 랜덤하게 추출하시오 (1~100)
플레이어의 공격 데미지가 80~100 사이면 'Critical Hit!!" 표시를 하고
플레이어의 공격 데미지가 40~79 사이면 'Big Hit!!" 표시를 하고
플레이어의 공격 데미지가 20~39 사이면 'Nomal Hit!!" 표시를 하고
플레이어의 공격 데미지가 1~19 사이면 'Miss Hit!!" 표시를 하시오
플레이어의 공격 데미지를 맞은 몬스터의 체력도 같이 표시하고
체력이 0이하일 경우에는 사망 여부도 표시하시오.
체력이 0미만일 경우에는 체력값을 0으로 표시하시오.
(몬스터의 기본 체력을 50으로 설정하시오)

[출력결과]
플레이어가 ?? 데미지로 ?? Hit!!이 발생했습니다.
몬스터의 현재 체력은 ?? 이며 아직 생존한 상태입니다. / 사망한 상태입니다.
#include <iostream>
#include <string>
// 렌덤값 추출 관련 라이브러리
#include <stdio.h>
#include <time.h>

using namespace std;

void main() {

    // 시간의 초로 랜덤을 추출하기 때문에 같은 초에 있을 때 같은 랜덤수가 나올 수 있다.
    srand((unsigned int)time(NULL));

    //int damage = rand() % 경우의수;
    // 1~100까지의 랜덤 추출
    // 100만 넣을 경우 0~99까지 추출
    int damage = rand() % 100 + 1;
    int monsterHp = 50;

    cout << "플레이어의 공격은 : " << damage << endl;

    // 데미지 조건
    if ((damage >= 80) && (damage <= 100)){
        cout << "플레이어가 " << damage << " 데미지로 Critical Hit!!이 발생" << endl;
    }
    if ((damage >= 40) && (damage <= 79)){
        cout << "플레이어가 " << damage << " 데미지로 Big Hit!!이 발생" << endl;
    }
    if ((damage >= 20) && (damage <= 39)){
        cout << "플레이어가 " << damage << " 데미지로 Nomal Hit!!이 발생" << endl;
    }
    if ((damage >= 1) && (damage <= 19)){
        cout << "플레이어가 " << damage << " 데미지로 Miss Hit!!이 발생" << endl;
    }

    /* 플레이어가 ?? 데미지로 ??이 발생 출력문자가 중복이므로 아래 처럼 바꿀수 있다.

    cout << "플레이어가 " << damage << " 데미지로 ";
    if ((damage >= 80) && (damage <= 100)){
         cout << "Critical Hit!!";
    }
    if ((damage >= 40) && (damage <= 79)){
        cout << "Big Hit!!";
    }
    if ((damage >= 20) && (damage <= 39)){
        cout << "Nomal Hit!!";
    }
    if ((damage >= 1) && (damage <= 19)){
        cout << "Miss Hit!!";
    }
    cout << "이 발생" << endl;

    */


    // 데미지 계산
    monsterHp -= damage;

    // 사망 여부
    if (monsterHp > 0) {
        cout << "몬스터의 현재 채력은 " << monsterHp << " 이며 아직 생존한 상태" << endl;
    }
    else {
        monsterHp = 0;  // -(마이너스) 값이 들어가는 것을 0으로 변경
        cout << "몬스터의 현재 채력은 " << monsterHp << " 이며 사망한 상태" << endl;
    }

}

if ~ if else
플레이어의 공격력을 입력하여 데미지별 Hit 표시
// 조건문
// if ~ else if
#include <iostream>
#include <string>
// 렌덤값 추출 관련 라이브러리
#include <stdio.h>
#include <time.h>

using namespace std;

void main10() {

    // 시간의 초로 랜덤을 추출하기 때문에 같은 초에 있을 때 같은 랜덤수가 나올 수 있다.
    srand((unsigned int)time(NULL));

    //int damage = rand() % 경우의수;
    // 1~100까지의 랜덤 추출
    // 100만 넣을 경우 0~99까지 추출
    int damage = rand() % 100 + 1;
    int monsterHp = 50;

    cout << "플레이어의 공격은 : " << damage << endl;

    cout << "플레이어가 " << damage << " 데미지로 ";
    // 데미지 조건
    // if ~ else if 조건 중에서 참이 나오면 다음 else if문을 실행하지 않고 if명령문을 빠져나온다.
    if ((damage >= 80) && (damage <= 100)){
    cout << "Critical Hit!!";
    }
    else if ((damage >= 40) && (damage <= 79)){
    cout << "Big Hit!!";
    }
    else if ((damage >= 20) && (damage <= 39)){
    cout << "Nomal Hit!!";
    }
    // if ~ else if 조건문 일 경우 else if 조건문을 생략하고 else만 사용해된다. else { 명령줄 }
    else if ((damage >= 1) && (damage <= 19)){
    cout << "Miss Hit!!";
    }
    cout << "이 발생" << endl;

    // 데미지 계산
    monsterHp -= damage;

    cout << "몬스터의 현재 채력은 ";

    // 사망 여부
    if (monsterHp > 0) {
        cout << monsterHp << " 이며 아직 생존한 상태" << endl;
    }
    else {
        monsterHp = 0;  // -(마이너스) 값이 들어가는 것을 0으로 변경
        cout << monsterHp << " 이며 사망한 상태" << endl;
    }
}
285개(1/15페이지)
프로그래밍
번호 제목 글쓴이 조회 날짜
285 [Python] 동적 import - 모듈을 변수로 받아오기 푸딩뱃살 409 2022.10.27 10:45
284 [Python] 파이썬 3.7.7과 3.9.7의 os.path.expanduser() 차이 푸딩뱃살 449 2022.08.18 12:22
283 [Python] error: Microsoft Visual C++ 9.0 is required. 첨부파일 푸딩뱃살 675 2022.08.03 13:35
282 [Python] pyscript 첨부파일 푸딩뱃살 446 2022.06.09 11:21
281 [Python] float is / float not is 푸딩뱃살 589 2022.03.02 15:03
280 [Python] 이터널 문자열 f 푸딩뱃살 826 2022.01.27 16:35
279 [Python] is와 ==의 차이 푸딩뱃살 481 2021.11.25 15:54
278 [Python] Error: ImportError: file line 1: Ba 푸딩뱃살 909 2021.11.16 11:24
277 [Python] 파이썬 디컴파일 - uncompyle6 첨부파일 푸딩뱃살 770 2021.11.10 14:46
276 [Python] 파이썬 확장자 설명 푸딩뱃살 546 2021.11.03 14:38
275 [참고] 웹 fbx 뷰어 푸딩뱃살 464 2021.10.19 15:46
274 [Python] enumerate() 푸딩뱃살 494 2021.10.13 14:44
273 [Python] 아나콘다에서 가상 환경 첨부파일 푸딩뱃살 709 2020.11.21 00:26
272 [Python] pip로 설치 때 퍼미션 에러 사진 첨부파일 푸딩뱃살 1258 2020.06.06 17:13
271 [Python] OpenCV 10-3. 이미지 Thresholding - Otsu's Binarizatio 사진 푸딩뱃살 665 2020.06.05 14:01
270 [Python] OpenCV 10-2. 이미지 Thresholding - Adaptive Threshold 사진 푸딩뱃살 687 2020.06.05 13:58
269 [Python] OpenCV 10-1. 이미지 Thresholding 사진 푸딩뱃살 573 2020.06.05 13:56
268 [Python] OpenCV 9-2. 색 추적 푸딩뱃살 762 2020.06.02 23:29
267 [Python] OpenCV 9-1. 색공간 바꾸기 푸딩뱃살 634 2020.06.02 23:27
266 [Python] OpenCV 8-3. 이미지 비트 연산 사진 푸딩뱃살 522 2020.06.02 23:21