본문 바로가기
C 언어

c 언어[014] switch - case문 - break 형식과 실행

by Smart Factory in 2020 2020. 10. 10.
728x90
반응형

안녕하세요. 스마트팩토리입니다. 

c 언어[013] switch - case문 - break 에 대해 알아보겠습니다. 특정한 선택지가 있을 때 사용하는 경우가 있습니다. 가장 기본적인 형식을 아는데 중점을 두고 break의 의미를 파악하는데 중점을 두기 바랍니다. 

swith - case  문의 경우는 : 이 들어가서 파이썬과 비슷한 느낌이 들어갑니다. 

case 레이블 에는 상수 위 형식에는 숫자(1,2,3으로 선택)와 문자char와 같이 상수만 가능합니다. 

메뉴 선택하는 코딩을 직접보면서 알아보겠습니다. 

 ARS에서 선택하는 상황에서 많이 접해 봤을 것을 메뉴로 해 보았습니다. 

1번 2번 3번에 해당하는 메뉴를 정해놓고 선택하는 코딩입니다. 

case 레이블에 숫자 상수 int 형으로 받아서 그것이 참인 경우에는 그 해당하는 케이스로 이동하여 실행문을 실행합니다. 

case 에 해당하는 것이 없을 때는 맨 마지막에 default 를 실행합니다. 

숫자 5를 입력 하니 

메뉴를 선택하지 않으셨습니다가 출력되었습니다. 


#include<stdio.h>
void main() {
puts(" 다음 중 좋아하는 메뉴를 선택하세요");
puts(" 짜장면은 1번, 짬뽕은 2번, 아무거나는 3번입니다. 숫자만 입력하세요\n");
int re;
scanf_s("%d", &re);
switch (re) {
case 1:
puts("1번 짜장면을 선택하셨습니다.");
break;
case 2:
puts("2번 짬뽕을 선택하셨습니다.");
break;
case 3:
puts("3번 아무거나를 선택하셨습니다.");
break;
default :
puts("메뉴를 선택하지 않으셨습니다.");
break;

}
}


 

메뉴 선택 프로그램에서 break를 지웠습니다. 

그럴 경우 순차 진행을 하게 됩니다. 

메뉴 2번을 고른 결과 case 2번 이후가 모두  출력된다는 것을 알 수 있습니다. 


#include<stdio.h>
void main() {
puts(" 다음 중 좋아하는 메뉴를 선택하세요");
puts(" 짜장면은 1번, 짬뽕은 2번, 아무거나는 3번입니다. 숫자만 입력하세요\n");
int re;
scanf_s("%d", &re);
switch (re) {
case 1:
puts("1번 짜장면을 선택하셨습니다.");
case 2:
puts("2번 짬뽕을 선택하셨습니다.");
case 3:
puts("3번 아무거나를 선택하셨습니다.");
default :
puts("메뉴를 선택하지 않으셨습니다.");
}
}


 

case 에 문자 char 를 선택지로 할 경우 

앞서 숫자를 선택지로 한 경우이고 이번에는 문자 char로 선택지를 했습니다. 그러다 보니 입력받는 값의 서식도 %c와 같이 서식도 변경해야 합니다.  또한 문자 이기 때문에  case 'a' 처럼 ''   작은 따옴표 안에 넣어줘야 합니다. 

 

그렇지 않으면 에러가 발생합니다. 


#include<stdio.h>
void main() {
puts(" 다음 중 좋아하는 메뉴를 선택하세요");
puts(" 짜장면은 a번, 짬뽕은 b번, 아무거나는 c번입니다. 알파벳만 입력하세요\n");
char re;
scanf_s("%c", &re);
switch (re) {
case 'a':
puts("짜장면을 선택하셨습니다.");
break;
case 'b':
puts("짬뽕을 선택하셨습니다.");
break;
case 'c':
puts("아무거나를 선택하셨습니다.");
break;
default :
puts("메뉴를 선택하지 않으셨습니다.");
}
}


 

< < 번외>> >>>>

다음 코딩을 결과는 값은 무엇일까요?

break가 없다는 것을 파악해야 합니다. 

a 값이 주어진 값이기 때문에 바로 해당 case 로 이동해서 그 이하도 진행합니다. 


#include<stdio.h>
void main() {
int a = 10;
switch (a) {
case 1:
   a++;
case 10:   --> a 가 10 이므로 여기부터 시작합니다. 
a--;   --> a 가 1이 줄어듭니다. a= 9 
case 12:
   a += 5;   --> break가 없어서 여기도 연산합니다. 9+5 는 14 입니다 a=14
default :
   a -= 3;  --> break 가  없어서 역시 실행합니다.  14- 3 은 11 입니다. a=11
}
printf("%d\n", a); --> a 값 11을 출력합니다. 
}


 

 

728x90
반응형

댓글