C의 스위치 문은 if-else-if 래더 문에 대한 대안으로, 스위치 변수라고 불리는 단일 변수의 다양한 가능한 값에 대해 여러 작업을 실행할 수 있습니다. 여기서는 단일 변수의 다양한 값에 대해 여러 경우에 다양한 명령문을 정의할 수 있습니다.
switch 문의 구문 c 언어 다음과 같습니다:
switch(expression){ case value1: //code to be executed; break; //optional case value2: //code to be executed; break; //optional ...... default: code to be executed if all cases are not matched; }
C언어의 스위치문 규칙
- 그만큼 스위치 표현 정수 또는 문자 유형이어야 합니다.
- 그만큼 케이스 값 정수 또는 문자 상수여야 합니다.
- 그만큼 케이스 값 스위치 문 내에서만 사용할 수 있습니다.
- 그만큼 break 문 스위치 케이스에서는 필수가 아닙니다. 선택 사항입니다. 케이스에 break 문이 없으면 모든 케이스는 일치하는 케이스 다음에 실행됩니다. 그것은 다음과 같이 알려져 있습니다. 실패로 끝나다 C 스위치 문의 상태.
예제를 통해 이해해 봅시다. 다음과 같은 변수가 있다고 가정합니다.
int x,y,z; char a,b; float f;
유효한 스위치 | 잘못된 스위치 | 유효한 사례 | 잘못된 사례 |
---|---|---|---|
스위치(x) | 스위치(f) | 사례 3; | 사례 2.5; |
스위치(x>y) | 스위치(x+2.5) | 경우 'a'; | 케이스 x; |
스위치(a+b-2) | 사례 1+2; | 케이스 x+2; | |
스위치(func(x,y)) | 경우 'x'>'y'; | 사례 1,2,3; |
C의 스위치 문의 흐름도
Switch Case 문의 기능
먼저, switch 문에 지정된 정수 표현식이 평가됩니다. 그런 다음 이 값은 다른 경우에 제공된 상수 값과 하나씩 일치됩니다. 일치하는 항목이 발견되면 해당 Case에 지정된 모든 문이 기본 문을 포함하여 해당 Case 이후에 있는 모든 Case와 함께 실행됩니다. 두 사례는 비슷한 값을 가질 수 없습니다. 일치하는 케이스에 break 문이 포함되어 있으면 그 이후에 있는 모든 케이스를 건너뛰고 제어가 스위치에서 나옵니다. 그렇지 않으면 일치하는 사례 다음에 오는 모든 사례가 실행됩니다.
C 스위치 문은 어떻게 작동하나요?
C에서 스위치 문이 어떻게 작동하는지 단계별로 살펴보겠습니다.
다음을 고려하세요 스위치 문 :
C 프로그램:
#include int main() { int num = 2; switch (num) { case 1: printf('Value is 1 '); break; case 2: printf('Value is 2 '); break; case 3: printf('Value is 3 '); break; default: printf('Value is not 1, 2, or 3 '); break; } return 0; }
산출
Value is 2
단계별 프로세스:
- 그만큼 스위치 변수 번호 평가됩니다. 이 경우, 하나에 으로 초기화됩니다. 값 2 .
- 그만큼 평가된 숫자(2) 값 내부의 각 케이스 라벨에 지정된 상수와 비교됩니다. 스위치 블록 .
- 그만큼 스위치 문 일치 평가값(2) 에 지정된 상수를 사용하여 두 번째 경우 (케이스 2) . 일치하는 항목이 있으므로 프로그램은 해당 코드 블록으로 점프합니다. 일치하는 경우(케이스 2) .
- 관련된 코드 블록 사례 2 실행되어 인쇄됩니다. '값은 2' 콘솔에.
- 그만큼 '부서지다' 키워드는 다음의 코드 블록에 있습니다. 사례 2 . 결과적으로 프로그램은 코드 블록을 실행한 직후에 switch 문에서 빠져 나옵니다.
- 프로그램 제어는 이후에도 계속됩니다. 스위치 문 , 그리고 다음의 모든 진술 스위치 문 실행됩니다. 이 경우 스위치 이후에 명령문이 없으므로 프로그램이 종료됩니다.
- 그만큼 스위치 문 의 가치를 평가했다 변수 번호 , 사례 2와 일치하는 항목을 찾고 해당 코드 블록을 실행한 다음 종료합니다. 스위치 블록 의 존재로 인해 'break' 문 .
C의 스위치 문의 예
C 언어 스위치 문의 간단한 예를 살펴보겠습니다.
#include int main(){ int number=0; printf('enter a number:'); scanf('%d',&number); switch(number){ case 10: printf('number is equals to 10'); break; case 50: printf('number is equal to 50'); break; case 100: printf('number is equal to 100'); break; default: printf('number is not equal to 10, 50 or 100'); } return 0; }
산출
정렬 배열 목록 자바
enter a number:4 number is not equal to 10, 50 or 100 enter a number:50 number is equal to 50
스위치 케이스 예 2
#include int main() { int x = 10, y = 5; switch(x>y && x+y>0) { case 1: printf('hi'); break; case 0: printf('bye'); break; default: printf(' Hello bye '); } }
산출
hi
Switch 문의 Break 및 Default 키워드
설명하고 정의해보자. '부서지다' 그리고 '기본' 키워드 예제 코드 및 출력과 함께 스위치 문의 컨텍스트에서.
1. 브레이크 키워드:
그만큼 'break' 키워드 스위치 문을 조기에 종료하기 위해 각 사례의 코드 블록 내에서 사용됩니다. 프로그램이 다음을 만났을 때 'break' 문 케이스 블록 내부에서는 즉시 종료됩니다. 스위치 문 , 후속 케이스 블록의 실행을 방지합니다. 그만큼 'break' 문 스위치 문을 피하는 데 중요합니다' '실패로 끝나다' 행동.
예:
의 사용법을 이해하기 위한 프로그램을 살펴보겠습니다. 브레이크 키워드 C에서
#include int main() { int num = 3; switch (num) { case 1: printf('Value is 1 '); break; // Exit the switch statement after executing this case block case 2: printf('Value is 2 '); break; // Exit the switch statement after executing this case block case 3: printf('Value is 3 '); break; // Exit the switch statement after executing this case block default: printf('Value is not 1, 2, or 3 '); break; // Exit the switch statement after executing the default case block } return 0; }
산출
Value is 3
설명:
이 예에서는 스위치 문 의 가치를 평가합니다. 변수 번호 (이것은 삼 )와 일치합니다. 사례 3 . 관련된 코드 블록 사례 3 실행, 인쇄 중 '값은 3' 콘솔에. 그만큼 'break' 문 이내에 사례 3 프로그램이 이 케이스 블록을 실행한 후 즉시 스위치 문을 종료하여 다른 케이스의 실행을 방지합니다.
2. 기본 키워드:
다음 중 어느 것도 없을 때 대소문자 상수 일치하는 평가된 표현 , 다음과 같이 작동합니다. 만능 케이스 . 일치하는 사례가 없고 '기본' 사례가 존재합니다. , 관련된 코드 블록 '기본' 사건이 실행됩니다. 명시된 상황 중 어느 것도 제공된 입력에 적용되지 않는 상황을 처리하는 데 자주 사용됩니다.
예:
의 사용법을 이해하기 위한 프로그램을 살펴보겠습니다. 기본 키워드 C에서
#include int main() { int num = 5; switch (num) { case 1: printf('Value is 1 '); break; case 2: printf('Value is 2 '); break; case 3: printf('Value is 3 '); break; default: printf('Value is not 1, 2, or 3 '); break; // Exit the switch statement after executing the default case block } return 0; }
산출
Value is not 1, 2, or 3
설명:
이 예에서는 스위치 문 의 가치를 조사합니다. 변수 번호 (이것은 5 ). 숫자와 일치하는 사례가 없기 때문에 프로그램은 다음과 관련된 코드 블록을 수행합니다. '기본' 사례 . 그만큼 'break' 문 안에 '기본' 사례 프로그램이 종료되는지 확인합니다. 스위치 문 실행 후 '기본' 케이스 블록.
둘 다 '부서지다' 그리고 '기본' 키워드 스위치 문 내에서 실행 흐름을 제어하는 데 필수적인 역할을 합니다. 그만큼 'break' 문 넘어지는 행동을 방지하는 데 도움이 됩니다. '기본' 사례 일치하지 않는 사례를 처리하는 방법을 제공합니다.
C Switch 문이 실패했습니다.
C 언어에서는 스위치 문이 실패합니다. 이는 switch 케이스에서 break 문을 사용하지 않으면 일치하는 케이스 이후의 모든 케이스가 실행된다는 의미입니다.
아래 예제를 통해 switch 문의 상태를 통해 가을을 이해해 보겠습니다.
#include int main(){ int number=0; printf('enter a number:'); scanf('%d',&number); switch(number){ case 10: printf('number is equal to 10 '); case 50: printf('number is equal to 50 '); case 100: printf('number is equal to 100 '); default: printf('number is not equal to 10, 50 or 100'); } return 0; }
산출
enter a number:10 number is equal to 10 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100
산출
enter a number:50 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100
중첩된 스위치 케이스 문
스위치 문 내에서 원하는 만큼 많은 스위치 문을 사용할 수 있습니다. 이러한 유형의 명령문을 중첩된 스위치 케이스 명령문이라고 합니다. 다음 예를 고려하십시오.
#include int main () { int i = 10; int j = 20; switch(i) { case 10: printf('the value of i evaluated in outer switch: %d ',i); case 20: switch(j) { case 20: printf('The value of j evaluated in nested switch: %d ',j); } } printf('Exact value of i is : %d ', i ); printf('Exact value of j is : %d ', j ); return 0; }
산출
the value of i evaluated in outer switch: 10 The value of j evaluated in nested switch: 20 Exact value of i is : 10 Exact value of j is : 20
switch 문의 장점:
에는 여러 가지 장점이 있습니다. 스위치 문 C에서. switch 문의 주요 장점은 다음과 같습니다.
그만큼 스위치 문 역할을 하는 기본 케이스 사용을 지원합니다. 포괄 옵션 제공된 사례와 일치하지 않는 값의 경우. 이것 기본 케이스 명시적으로 언급되지 않은 비정상적인 입력이나 상황을 처리합니다.
switch 문의 단점:
에는 여러 가지 단점이 있습니다. 스위치 문 C에서. switch 문의 몇 가지 주요 단점은 다음과 같습니다.