생선이의 잡다한 블로그

C언어 강좌 18 - 조건에 맞는 위치로! switch-case 문 본문

프로그래밍/C언어 강좌

C언어 강좌 18 - 조건에 맞는 위치로! switch-case 문

생선스프 2017. 9. 1. 08:30
반응형

 안녕하세요 생선스프입니다!


이번에는 흐름제어문을 알아보려고 합니다


흐름제어문에는


if (if-else, if-else if, if-else if-else)

switch

break

continue


이렇게 여러가지가 있습니다


이번에는 조건에 따라 실행시키는 switch-case 문을 알아보려고 합니다


if로 만들 수 있는것은 switch로 만들 수 있고, switch로 만들 수 있는것은 if 로 만들 수 있습니다


switch-case 문은 아래와 같은 형태로 사용합니다


switch(비교할값)
{
    case 비교될값:
    {
        비교할 값이 비교될 값과 같은경우 실행할 코드
    }
    case 비교될값:
    {
        비교할 값이 비교될 값과 같은경우 실행할 코드
    }
}
cs


그럼 아래의 예제를 보도록 하겠습니다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
void main()
{
    int num;
    printf("정수 입력 : ");    scanf_s("%d"&num);
 
    switch (num)
    {
    case 1:
        puts("1을 입력하셨군요!");
    case 2:
        puts("2를 입력하셨군요!");
    case 3:
        puts("3을 입력하셨군요!");
    }
}

cs


흠.. 위의 코드를 보니 아마도 1을 입력하면 "1을 입력하셨군요!"가 출력이 되고 2를 입력하면 "2를 입력하셨군요!"가 출력이 될 것 같네요


실행을 시킨뒤 1을 입력하면 아래와 같이 출력됩니다

   1을 입력하셨군요!    

   2를 입력하셨군요!    

   3을 입력하셨군요!    


2 입력시

   2를 입력하셨군요!    

   3을 입력하셨군요!    


3 입력시

   3을 입력하셨군요!    


음..? 무언가 이상합니다

조건에 맞는 곳으로 이동하는 것은 좋지만 아래있는 코드까지 전부 실행시켜버립니다


그러면 저희에게는 원하는 부분만 실행시키고 탈출시켜야 할 수단이 필요합니다

이때 등장하는 것이 break 입니다


break는 반복문 혹은 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 <stdio.h>
 
void main()
{
    int num;
    printf("정수 입력 : ");    scanf_s("%d"&num);
 
    switch (num)
    {
    case 1:
    {
        puts("1을 입력하셨군요!");
        break;
    }
    case 2:
    {
        puts("2를 입력하셨군요!");
        break;
    }    
    case 3:
    {
        puts("3을 입력하셨군요!");
        break;
    }
    }
}

cs


이렇게 수정하고 실행하면 저희가 원했던데로 결과가 나옵니다


1 입력시

   1을 입력하셨군요!    


2 입력시

   2을 입력하셨군요!    


3 입력시

   3을 입력하셨군요!    


그런데 if 에는 else가 있습니다

switch-case 문에도 비슷한 역할을 하는 것이 있습니다


바로 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
#include <stdio.h>
void main()
{
    int num;
    printf("정수 입력 : ");    scanf_s("%d"&num);
    switch (num)
    {
    case 1:
    {
        puts("1을 입력하셨군요!");
        break;
    }
    case 2:
    {
        puts("2를 입력하셨군요!");
        break;
    }
    case 3:
    {
        puts("3을 입력하셨군요!");
        break;
    }
    default:
        puts("1, 2, 3 이 아니네요");
    }
}

cs


default 부분에 break를 안 쓴 이유는 default가 마지막에 있으니 굳이 써줄 필요가 없기 때문입니다


그럼 이상으로 강좌 마치도록 하겠습니다

강좌 읽어주셔서 감사합니다


공감과 댓글은 생선에게 힘이됩니다!

더 많은 C언어 강좌

반응형
Comments