C 스위치 케이스 문

C Switch Case Statements



switch 문(또는 단순히 case 문)은 변수 또는 표현식의 값을 기반으로 프로그램 실행을 결정하는 제어 흐름 메커니즘입니다.

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 문을 만들 때 주목할 가치가 있는 빠른 지침입니다.

  1. switch 키워드에 표현식을 전달해야 합니다.
  2. Case 문은 고유한 값을 확인해야 합니다.
  3. break 키워드를 사용하여 각 케이스 블록을 종료합니다.
  4. 여러 switch 문을 중첩할 수 있습니다.
  5. 일치하지 않는 경우에 조치가 필요한 경우 기본 명령문을 포함할 수 있습니다.

결론

이 가이드는 C switch 문을 만들고 사용하는 기본 사항을 안내했습니다. Switch 문은 및 if else 문으로 구현하기 어려울 수 있는 복잡한 결정 사례가 있을 때 유용합니다.