안녕하세요. 스마트팩토리입니다.
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을 출력합니다.
}
'C 언어' 카테고리의 다른 글
c 언어[016] 이중for문 2단부터 9단까지 출력하는 프로그램 (0) | 2020.10.11 |
---|---|
c 언어[015] for반복문 if문, break, 1부터 100까지 합을 구하면서 중간에 합이 1000이 넘어갈 때의 값을 알아보는 프로그램, continue,1부터 100까지 홀수의 합 (0) | 2020.10.11 |
c 언어[013] while 문과 do while 문, while문->for문으로 변환 (0) | 2020.10.09 |
c 언어[012] 데이터 크기 사이즈 알아보는 함수 sizeof(a) 변수의 사이즈 알아보기 (0) | 2020.10.09 |
c 언어[011] 조건 연산자"조건? 수식 1;수식2;" for 반복문 활용, 총점과 평균구하는 프로그램 (0) | 2020.10.09 |
댓글