switch 문을 사용하면 여러 조건을 테스트하고 조건이 참인 경우에만 특정 블록을 실행할 수 있습니다. if…else if….else 문과 유사하게 작동하지만 구문이 더 간단하고 읽고 관리하기 쉽습니다.
이 자습서는 C 프로그래밍에서 switch 문을 만들고 작업하는 방법을 보여 주는 데 중점을 둡니다.
기본 사용법
switch 문은 구현하기 쉽습니다. 일반 구문은 다음과 같습니다.
스위치 (특급) {
케이스바1:
// 코드
부서지다;
케이스바2:
//암호
부서지다;
케이스바3:
// 코드
부서지다;
케이스바N:
// 코드
부서지다;
...
….
….
기본:
//암호
}
작동 원리
switch 문은 각 케이스 블록을 평가하는 간단한 논리를 구현합니다.
switch 블록 내부의 표현식을 평가하는 것으로 시작합니다. 그런 다음 switch 블록의 값을 각 case 블록과 비교합니다.
정의된 케이스 블록 중 하나에서 일치 항목을 찾으면 break 키워드를 만날 때까지 해당 블록 내의 코드를 실행합니다.
정의된 case 블록 중 하나에서 일치하는 항목이 없으면 기본 문으로 이동하여 그 안의 코드를 실행합니다. 기본 블록은 선택 사항이며 일치하지 않는 시나리오에 대한 필수 조치가 없는 경우 생략 가능합니다.
노트: 일치하는 블록 이후의 모든 문이 실행되지 않도록 각 case 문이 break 문으로 종료되도록 하는 것이 좋습니다.
C 스위치 케이스 문 예
아주 간단한 예를 들어 switch 문을 설명하겠습니다.
#포함하다인트메인() {
정수어디= 5;
스위치 (어디) {
사례3:
인쇄 ('값은 3');
부서지다;
사례4:
인쇄 ('값은 4');
부서지다;
사례5:
인쇄 ('값은 5');
부서지다;
기본:
인쇄 ('값은 3도 4도 5도 아닙니다');
}
반환0;
}
위의 예를 실행하면 아래와 유사한 출력을 얻을 수 있습니다.
값은5다음 흐름도는 위 프로그램의 논리를 보여줍니다.
중첩된 스위치 문
C를 사용하면 switch 문 안에 switch 문을 중첩할 수 있습니다. 중첩된 switch 문은 외부 스위치의 값에 연결됩니다.
다음 예를 고려하십시오.
#포함하다인트메인() {
정수부서= 5;
intaccess_code= 2028년;
스위치 (부서) {
사례1:
스위치 (액세스 코드) {
사례2021:
인쇄 ('[+] 유효한 액세스 코드입니다!');
부서지다;
기본:
인쇄 ('[-] 잘못된 액세스 코드입니다!');
}
부서지다;
기본:
인쇄 ('[-] 부서 1만 허용됩니다!');
}
반환0;
}
위의 예에서는 두 개의 switch 문을 구현합니다. 첫 번째는 제공된 부서가 1인지 확인합니다. true이면 다음 스위치 블록으로 진행하여 유효한 액세스 코드를 확인합니다.
dept 값이 1이 아닌 경우 실행은 기본 블록으로 이동합니다.
다음은 위의 코드를 올바르고 잘못된 부서 및 액세스 코드로 실행한 것입니다.
첫 번째 예에서는 부서 코드와 액세스 코드가 모두 정확합니다. 따라서 실행은 기본 블록에 도달하지 않습니다.
두 번째 예에서는 부서 코드와 액세스 코드가 모두 올바르지 않습니다. 따라서 실행은 즉시 첫 번째 기본 블록으로 이동합니다.
Switch 문 지침
다음은 C에서 switch 문을 만들 때 주목할 가치가 있는 빠른 지침입니다.
- switch 키워드에 표현식을 전달해야 합니다.
- Case 문은 고유한 값을 확인해야 합니다.
- break 키워드를 사용하여 각 케이스 블록을 종료합니다.
- 여러 switch 문을 중첩할 수 있습니다.
- 일치하지 않는 경우에 조치가 필요한 경우 기본 명령문을 포함할 수 있습니다.
결론
이 가이드는 C switch 문을 만들고 사용하는 기본 사항을 안내했습니다. Switch 문은 및 if else 문으로 구현하기 어려울 수 있는 복잡한 결정 사례가 있을 때 유용합니다.