일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 관계 연산자
- 비트 논리 연산자
- 사용자 입력
- 앱 인벤터 예시
- Python
- Python Basic
- cmath
- output
- 앱 스토어 4월
- 파이썬을 중심으로
- C++ Basic
- Conditional operator
- 모바일 무료 게임 순위
- 연산자
- User Input Output
- user function
- C++
- 앱 인벤터 2
- 파이썬
- 앱인벤터
- 앱 인벤터
- help 함수
- 프로그래밍 열풍
- Logic Operator
- using namespace std
- input
- ISSACMin
- 사용자 출력
- Operator
- C++ 연습예제
- Today
- Total
ISSAC.Min
[C++ Basic] 조건문(Switch) 본문
1. 조건문(witch) |
현재 C++에서는 여러가지 조건문을 지원하며 앞의 포스팅을 통하여 if-else 문에 대해서 알아보았다. 오늘 포스팅은 조건문 중 하나인 Switch 문에 대해서 이야기해보고자 한다.
일반적으로 대부분의 문법을 통하여 똑같은 알고리즘을 구현할 수 있다. 예를 들어 if-else문에서의 알고리즘을 Switch문에서도 사용가능하단 이야기이다. 또한 앞에서 포스팅했던 반복문인 while문도 for문으로 표현이 가능하다.
간단한 예제로 사용자에게 1 ~ 5까지의 정수형을 입력받고 각 입력에 맞는 출력을 해주는 프로그램을 보자.
<if-else문의 사용>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <iostream> using namespace std; int main() { int num; cout << "Enter an integer from 1 to 5 : "; cin >> num; if (num == 1) { cout << "This number is 1" << endl; } else if(num == 2) { cout << "This number is 2" << endl; } else if(num == 3) { cout << "This number is 3" << endl; } else if(num == 4) { cout << "This number is 4" << endl; } else if(num == 5) { cout << "This number is 5" << endl; } else { cout << "Not a number of ranges" << endl; } return 0; } | cs |
<switch문의 사용>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <iostream> using namespace std; int main() { int num; cout << "Enter an integer from 1 to 5 : "; cin >> num; switch (num) { case 1: cout << "This number is 1" << endl; break; case 2: cout << "This number is 2" << endl; break; case 3: cout << "This number is 3" << endl; break; case 4: cout << "This number is 4" << endl; break; case 5: cout << "This number is 5" << endl; break; default: cout << "Not a number of ranges" << endl; break; } return 0; } | cs |
앞에서 말했듯이 위의 두 코드는 결과가 동일하게 출력된다. if-else문과 switch문을 비교해 보았을때 switch문이 가독성이 훨씬 좋아보인다. 이게 switch문을 쓰는 가장 큰 이유 중 하나이다.
그렇다면 본격적으로 switch문에 대해서 파헤쳐보자.
2. switch문의 구성 |
switch문의 간단 구동 방식을 알아보면 switch( ) 빈칸에 구동 변수가 입력되어야하고 이 구동 변수를 각 case : 와 비교하여 만약에 맞다면 아래의 명령식을 실행시킨다. 그리고 만약 각 case : 에서 같은 변수값이 존재하지 않는다면 default 명령식을 실행시킨다.
그렇다면 case 안에 포함되어있는 break란 것은 무엇일까?
또한 default는 무엇을 의미할까?
3. break 명령문 |
조건문안에는 break란 문법을 사용(조건문만에서 사용가능 x)할 수 있는데 아래의 예시를 먼저 보자.
<break을 사용하지 않았을 때>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <iostream> using namespace std; int main() { int num; cout << "Enter an integer from 1 to 5 : "; cin >> num; switch (num) { case 1: cout << "This number is 1" << endl; case 2: cout << "This number is 2" << endl; case 3: cout << "This number is 3" << endl; case 4: cout << "This number is 4" << endl; case 5: cout << "This number is 5" << endl; default: cout << "Not a number of ranges" << endl; } return 0; } | cs |
위의 코드는 break를 제외한 코드이며 사용자 입력으로 1을 입력해보면
위와 같이 case 1: 뒤에 있는 모든 명령식이 출력된다.
그렇다면 break를 case 3:에 포함시켜보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <iostream> using namespace std; int main() { int num; cout << "Enter an integer from 1 to 5 : "; cin >> num; switch (num) { case 1: cout << "This number is 1" << endl; case 2: cout << "This number is 2" << endl; case 3: cout << "This number is 3" << endl; break; case 4: cout << "This number is 4" << endl; case 5: cout << "This number is 5" << endl; default: cout << "Not a number of ranges" << endl; } return 0; } | cs |
앞과 동일하게 사용자 입력으로 1을 입력해보면
위와 같이 break를 걸어주었던 case 3:까지만 출력이 된다.
switch문에서 break의 역활은 컴파일러에 이 switch문은 실행 되었다고 맞침표를 찍어주는 일을 한다.
즉, 앞의 예시 중 break가 없었던 코드에서는 switch문이 끝났다는 명령을 컴파일러에게 말해주지 않았기 때문에 위의 case의 명력식들도 같이 출력된 것이다.
4. default 명령어 |
default 명령어는 단어의 뜻대로 기본값 이다. 아래의 예시를 보면
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <iostream> using namespace std; int main() { int num; cout << "Enter an integer from 1 to 5 : "; cin >> num; switch (num) { case 1: cout << "This number is 1" << endl; break; case 2: cout << "This number is 2" << endl; break; case 3: cout << "This number is 3" << endl; break; case 4: cout << "This number is 4" << endl; break; case 5: cout << "This number is 5" << endl; break; default: cout << "Not a number of ranges" << endl; break; } return 0; } | cs |
앞에 if-else 문과 비교했던 그 코드이다. 만약 사용자 입력으로 1~5사이의 정수가 아니고 다른 수를 입력하게 되면 어떻게 될까?
결과는 위와 같이 default 값이 출력된다.
switch문에서 default의 역활은 switch문이 조건에 맞지 않는 구동 변수을 받을때 default 값을 출력한다.
5. 실습 |
'Programming Language > C++ Basic' 카테고리의 다른 글
[C++ Basic] 반복문(while) (0) | 2019.04.17 |
---|---|
[C++ Basic] 조건문(If-else) (0) | 2019.04.16 |
[C++ Basic] Pass by Value(값에 의한 전달) / Pass by Reference(참조에 의한 전달) (0) | 2019.04.16 |
[C++ Basic]지역변수(Local Variable) / 전역변수(Global Variable) (0) | 2019.04.16 |
[C++ Basic] 수학 함수(cmath) (0) | 2019.04.11 |