c언어에서 조건문하면 빼놓을 수 없는 switch문(switch-case문) 입니다
1. switch문 표현법
2. switch문 예제
MDSN에 표기된 switch문의 표현법은 다음과 같습니다.
switch ( expression )
{
// declarations
// . . .
case constant_expression:
// statements executed if the expression equals the
// value of this constant_expression
break;
default:
// statements executed if expression does not equal
// any case constant_expression
}
|
switch(조건에 대입할 값)
{
case 조건1:
실행될 코드
break;
case 조건2:
실행될 코드
break;
default:
모든 조건이 맞지 않을 경우 실행될 코드
}
입니다.
예제를 통해서 더 보도록 하죠!
#include <stdio.h>
int main(void)
{
int number = 3;
switch (number)
{
case 0:
printf("Call Functtion A");
break;
case 1:
printf("Call Functtion B");
break;
case 2:
printf("Call Functtion B");
break;
case 3:
printf("Call Functtion D");
break;
default:
printf("NO Call");
break;
}
}
|
코드 설명
스텝 1. int형 변수 number를 생성하고 3을 할당.
스텝2. switch(number) ==> number에 들어 있는 값에 따라서 아래 case로 분기
스텝3. number == 0 인가 ? ==> 아님
스텝4. number == 1인가 ? ==> 아님
스텝5. number == 2인가 ? ==> 아님
스텝6. number == 3인가 ? ==> 맞음
스텝7. printf("Call Function D"가 실행됨 ==> 콘솔창에 Call Funtion D가 출력
스텝8. break; 실행 ==> switch{}문 자체를 빠져나옴
스텝9. 프로그램 종료
case ■ :
실행될코드;
break;
■ 에는 반드시 상수(const)가 들어가야 합니다.
c언어에서 상수란 한번 정의 후 그 값이 변하지 않는 값을 의미하며,
지금은 변수와 반대개념이라고 생각해주세요.
★ 즉 case문의 조건으로 변수를 정의할 수는 없습니다
char형 변수로 switch문을 호출하는 예제를 하나더 살펴 보겠습니다.
소스코드
#include <stdio.h>
int main(void)
{
char char_num = '2';
switch (char_num)
{
case '1':
printf("CALL Function A\n");
break;
case '2':
printf("CALL Function B\n");
//break; 주석처리!
case '3':
printf("CALL Function C\n");
break;
case '4':
printf("CALL Function D\n");
break;
default:
printf("NO CALL\n");
break;
}
}
|
코드 설명
스텝 1. char형 변수 char_num을 생성하고 '2'를 할당.
스텝2. switch(char_num) ==> char_num에 들어 있는 값에 따라서 아래 case로 분기
스텝3. char_num== '1' 인가 ? ==> 아님
스텝4. char_num== '2' 인가 ? ==> 맞음
스텝5. printf("Call Function B"가 실행됨 ==> 콘솔창에 Call Funtion B가 출력
스텝6. printf("Call Function C"가 실행됨 ==> 콘솔창에 Call Funtion C가 출력 ★
스텝7. break; 실행 ==> switch{}문 자체를 빠져나옴
스텝8. 프로그램 종료
여기서 짚어봐야 할 것은 2개 입니다.
1. switch문은 모든 형식에서 사용이 가능하다는 것
2. switch문은 일치하는 case를 만난 후, 그 아래에 있는 모든 실행문을 실행!(default문 포함)
비유적으로 보면 일치하는 case를 만난 후 스위치가 ON이 되고
그 후로 모든 case안의 구문을 실행하게 됩니다.
따라서 해당 case구문만 실행하고 종료해야한다면 반드시 break가 걸려 있어야 합니다.
'IT프로그래밍' 카테고리의 다른 글
[MSSQL]MSSQL Insert into/ SQL Insert into / SQL 삽입 (0) | 2020.04.01 |
---|---|
[MSSQL]MSSQL 중복 제거 / SQL 중복 제거 / SQL distinct (0) | 2020.04.01 |
[C언어]C언어 배열 초기화 / C언어 배열 초기화 소스코드 / C언어 배열 초기화 방법 및 분석 (0) | 2020.04.01 |
[c언어]c언어 제곱 구하기 코드 (0) | 2020.03.30 |
[c언어]c언어 소수점 자르기 / c언어 소수점 자리 설정 / c언어 소수점 자릿수 설정 / c언어 소수점 자릿수 조절 (1) | 2020.03.29 |
[C언어]구구단출력 / 반복문 / for문 (0) | 2020.03.29 |
[C언어]구구단출력 / printf 숫자 출력 / printf 구구단 출력 (0) | 2020.03.28 |
[C언어]printf / printf 출력형식 / %d / (0) | 2020.03.28 |
댓글