생선이의 잡다한 블로그
C언어 강좌 18 - 조건에 맞는 위치로! switch-case 문 본문
안녕하세요 생선스프입니다!
이번에는 흐름제어문을 알아보려고 합니다
흐름제어문에는
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언어 강좌' 카테고리의 다른 글
C언어 강좌 20 - 최소 한 번은 반복하자! do-while 문 (0) | 2017.12.04 |
---|---|
C언어 강좌 19 - 반복 하자! while 문 (0) | 2017.12.04 |
C언어 강좌 17 - 조건을 걸자! if 문 흐름제어문 (0) | 2017.05.16 |
C언어 강좌 16 - 논리연산을 하는 논리연산자 (0) | 2017.05.04 |
C언어 강좌 15 - 참이면 앞을 거짓이면 뒤를! 조건연산자(삼항연산자) (0) | 2017.04.15 |