회원 로그인
|
조건문 switch
C++ switch 조건문
- 조건식에 해당하는 특정 조건이 참일 경우에만 특정 문장을 실행하도록 하는 "제어문"
1. switch 문 : 여러개의 조건식 중 참인 조건식에 대한 결과 문장만을 실행함
*조건이 ==(같다)와 정수 일 때
[문법]
문장1
switch(정수식) {
case 정수값1:
- 조건식에 해당하는 특정 조건이 참일 경우에만 특정 문장을 실행하도록 하는 "제어문"
1. switch 문 : 여러개의 조건식 중 참인 조건식에 대한 결과 문장만을 실행함
*조건이 ==(같다)와 정수 일 때
[문법]
문장1
switch(정수식) {
case 정수값1:
문장2;
break;
case 정수값2:
case 정수값2:
문장3;
break;
case 정수값3:
case 정수값3:
문장4;
break;
case 정수값n:
case 정수값n:
문장n;
break;
default:
default:
문장5;
break;
문장6
1. 정수식이 정수값2와 같을 경우 문장 실행 순서 : 문장1 -> 문장3 -> 문장6
2. 정수식과 일치하는 정수값이 없을 경우 문장 실행 순서 : 문장1 -> 문장5 -> 문장6
[특이사항]
1. switch문은 다중 if문과 비슷함
2. 모든 switch문은 다중 if문으로 전환할 수 있지만 반대는 그렇지 않다.
몬스터 이동의 if문과 switch문
가위바위보 조건을 switch문으로
플레이어의 레벨을 입력하여 레벨 조건으로 직책과 인던 출입 여부 결정
무기를 선택하면 무기의 종류를 출력
문장6
1. 정수식이 정수값2와 같을 경우 문장 실행 순서 : 문장1 -> 문장3 -> 문장6
2. 정수식과 일치하는 정수값이 없을 경우 문장 실행 순서 : 문장1 -> 문장5 -> 문장6
[특이사항]
1. switch문은 다중 if문과 비슷함
2. 모든 switch문은 다중 if문으로 전환할 수 있지만 반대는 그렇지 않다.
몬스터 이동의 if문과 switch문
#include <iostream> #include <string> // 렌덤값 추출 관련 라이브러리 #include <stdio.h> #include <time.h> using namespace std; void main() { // 렌덤값 추출 srand((unsigned int)time(NULL)); int dir = 1; int stamina = 100; // 방향을 추출함 (5방향) dir = rand() % 5 + 1; // if문 if (dir == 1){ // 동쪽 방향이라면 (조건1) cout << "몬스터가 동쪽 방향으로 이동" << endl; } else if (dir == 2){ // 서쪽 방향이라면 (조건2) cout << "몬스터가 서쪽 방향으로 이동" << endl; } else if (dir == 3) { // 남쪽 방향이라면 (조건3) cout << "몬스터가 남쪽 방향으로 이동" << endl; } else if (dir == 4) { // 북쪽 방향이라면 (조건4) cout << "몬스터가 북쪽 방향으로 이동" << endl; } else{ // 제자리라면 (모든 조건이 아니라면) cout << "몬스터가 제자리에" << endl; } // switch문 // if (dir == 1) { 명령줄 } // switch (dir) case 1: 명령줄 break; // else { 명령줄 } // default: 명령줄 break; switch (dir) { // dir 정수형 기준 변수 case 1: // == 1) { -> 정수값 cout << "몬스터가 동쪽 방향으로 이동" << endl; break; case 2: cout << "몬스터가 서쪽 방향으로 이동" << endl; break; case 3: cout << "몬스터가 남쪽 방향으로 이동" << endl; break; case 4: cout << "몬스터가 북쪽 방향으로 이동" << endl; break; default: cout << "몬스터가 제자리에" << endl; break; // } } }
가위바위보 조건을 switch문으로
// switch 예제 #include <iostream> #include <string> // 렌덤값 추출 관련 라이브러리 #include <stdio.h> #include <time.h> using namespace std; void main() { // 렌덤값 추출 srand((unsigned int)time(NULL)); int me; string result_; cout << "메뉴를 입력하세요 (1.가위 2.바위 3.보) : "; cin >> me; cout << "플레이어가 "; switch (me){ case 1: result_ = "가위"; // cout << "가위"; break; case 2: result_ = "바위"; // cout << "바위"; break; case 3: result_ = "보"; // cout << "보"; break; } cout << result_ << "를 냈습니다." << endl; }if문과 switch문 비교
플레이어의 레벨을 입력하여 레벨 조건으로 직책과 인던 출입 여부 결정
#include &lp;iostream> #include &lp;string> // 렌덤값 추출 관련 라이브러리 #include &lp;stdio.h> #include &lp;time.h> using namespace std; void main() { // 렌덤값 추출 srand((unsigned int)time(NULL)); int level; cout << "레벨 입력 : "; cin >> level; // if문 cout << "플레이어는 "; if (level >= 40) { cout << "최고급 영웅"; } else if (level >= 30) { cout << "고급 영웅"; } else if (level >= 20) { cout << "영웅"; } else if (level >= 10) { cout << "일반"; } else { cout << "초보"; } cout << "으로 인던 참가가 가능" << endl; // switch문 switch (level / 10) { case 0: cout << "초보"; break; case 1: cout << "일반"; break; case 2: cout << "영웅"; break; case 3: cout << "고급 영웅"; break; default: cout << "최고급 영웅"; break; } cout << "으로 인던 참가가 가능" << endl; }if문과 switch문 비교
무기를 선택하면 무기의 종류를 출력
#include <iostream> #include <string> // 렌덤값 추출 관련 라이브러리 #include <stdio.h> #include <time.h> using namespace std; void main() { // 렌덤값 추출 srand((unsigned int)time(NULL)); int swordNum; cout << "검을 선택" << endl; cout << "1. 남쟁이검" << endl; cout << "2. 도적검" << endl; cout << "3. 엑스칼리버" << endl; cout << "4. 불꽅검" << endl; cout << "5. 세이버" << endl; cout << "6. 무시시한도끼" << endl; cout << "7. 장인의검" << endl; cout << "8. 무식한도끼" << endl; cout << "9. 무거운망치" << endl; cout << "선택 : "; cin >> swordNum; // if cout << "플레이어는 "; if (swordNum == 1 || swordNum == 2 || swordNum == 5) { cout << "단검류"; } else if (swordNum == 3 || swordNum == 4 || swordNum == 7) { cout << "도검류"; } else { cout << "둔기류"; } cout << "를 선택하였습니다." << endl; cout << endl; // switch cout << "플레이어는 "; switch (swordNum) { // 정수의 조건이 맞는 case를 모아두면 된다. case 1: case 2: case 5: cout << "단검류"; break; case 3: case 4: case 7: cout << "도검류"; break; default: cout << "둔기류"; break; } cout << "를 선택하였습니다." << endl; }
댓글 0개
| 엮인글 0개
285개(8/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
145 | [C/C++] 배열 | 푸딩뱃살 | 2003 | 2015.11.03 09:58 |
144 | [C/C++] 클래스 | 푸딩뱃살 | 2376 | 2015.11.03 09:58 |
143 | [C/C++] 함수 사용 팁 | 푸딩뱃살 | 1957 | 2015.11.03 09:54 |
142 | [C/C++] 가위바위보 게임 3 (함수 사용) | 푸딩뱃살 | 3166 | 2015.11.02 13:45 |
141 | [C/C++] 함수 | 푸딩뱃살 | 1803 | 2015.11.02 13:44 |
140 | [C/C++] 2차원(2중) for문 | 푸딩뱃살 | 1957 | 2015.10.30 17:59 |
139 | [C/C++] 상수 | 푸딩뱃살 | 1402 | 2015.10.30 17:58 |
138 | [C/C++] 가위바위보 게임 2 | 푸딩뱃살 | 1644 | 2015.10.30 17:32 |
137 | [C/C++] continue문 | 푸딩뱃살 | 1531 | 2015.10.30 16:01 |
136 | [C/C++] break문 | 푸딩뱃살 | 1666 | 2015.10.30 15:43 |
135 | [C/C++] 반복문 while와 for 비교 | 푸딩뱃살 | 2486 | 2015.10.30 15:42 |
134 | [C/C++] 반복문 for | 푸딩뱃살 | 1820 | 2015.10.30 14:16 |
133 | [C/C++] 반복문 while | 푸딩뱃살 | 2254 | 2015.10.30 14:13 |
132 | [C/C++] 반복문 하기 전 스크립트 | 푸딩뱃살 | 1971 | 2015.10.30 14:10 |
>> | [C/C++] 조건문 switch | 푸딩뱃살 | 2070 | 2015.10.30 10:56 |
130 | [C/C++] 가위바위보 게임 | 푸딩뱃살 | 1743 | 2015.10.29 17:30 |
129 | [C/C++] 조건문 if ~ else | 푸딩뱃살 | 1966 | 2015.10.29 15:08 |
128 | [C/C++] 형 변환 | 푸딩뱃살 | 1649 | 2015.10.29 12:02 |
127 | [C/C++] 대입 연산자 | 푸딩뱃살 | 1561 | 2015.10.29 12:00 |
126 | [C/C++] 증가감 연산자 | 푸딩뱃살 | 1573 | 2015.10.29 11:57 |