본문 바로가기
공부/개발노트

[C/C++] switch/case의 사용 예시

반응형

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 score = 2;
    
    switch(score){
        case 0:
            cout << "밀려 쓰셨군요~\n";
            break;
        case 1:
            cout << "조금 더 노력하세요\n";
            break;
        case 2:
            cout << "안타깝습니다.\n";
            break;
        case 3:
            cout << "멋있어요~\n";
            break;
        case 4:
            cout << "완벽해요~\n";
            break;    
    }
    
    return 0;
}
cs

break;가 없으면 어떻게 될까?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main() {
    int score = 2;
    
    switch(score){
        case 0:
            cout << "밀려 쓰셨군요~\n";
        case 1:
            cout << "조금 더 노력하세요\n";
        case 2:
            cout << "안타깝습니다.\n";
        case 3:
            cout << "멋있어요~\n";
        case 4:
            cout << "완벽해요~\n";    
    }
    
    return 0;
}
cs


위처럼 상관 없는 문장이 나옵니다.

저 것을 고치기 위해서는 case문을 쓰셨으면 반드시 break;를 해주어야 아래처럼 정상적으로 나옵니다.



break;가 switch문을 빠져나가게 하는 역할을합니다.


그리고 무족건 프로그래밍에서는 0부터 시작입니다.

case 0:

break;

case 1:

break;

처럼요


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main() {
    int score = 5;
    
    switch(score){
        case 0:
            cout << "밀려 쓰셨군요~\n";
        case 1:
            cout << "조금 더 노력하세요\n";
        case 2:
            cout << "안타깝습니다.\n";
        case 3:
            cout << "멋있어요~\n";
        default:
            cout << "올바르지 않은 점수입니다.\n";    
    }
    
    return 0;
}
cs

default의 역할은 입력값 이외에 값이 입력되었을 경우 오류 메세지 출력과 같은 역할을 구현하고자 할 때 사용됩니다.
case x: 중 x에 해당되는 값이 아닌 그 외에 값이 입력되었을 때 default:로 가고 출력된 후 switch문을 탈출합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main() {
    int score = 1;
    
    switch(score){
        case 0:
        case 1:
        case 2:
            cout << "열심히하세요.\n";
            break
        case 3:
            cout << "멋있어요~\n";
            break;
        default:
            cout << "올바르지 않은 점수입니다.\n";    
    }
    
    return 0;
}
cs

case문을 붙여 쓸 수도 있습니다.
이 경우 case 0~2까지 11번째 줄을 실행하고 종료합니다.

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
#include <iostream>
using namespace std;
 
int main() {
    char score = 'a';
    
    switch(score){
        case 'a':
            cout << "참 잘했어요.\n";
            break;
            
        case 'b':
            cout << "잘했어요.\n";
            break;
            
        case 'c':            
        case 'd':
            cout << "분발하세요.\n";
            break;
            
        case 'f':
            cout << "쯧쯧\n";
            break;
            
        default:
            cout << "올바르지 않은 점수입니다.\n";    
    }
    
    return 0;
}
cs

switch/case 명령문을 사용해서 학점 별 안내 문구 구현



반응형