switch 문을 사용하는 방법은 무엇인가요?
switch 문은 주로 하나의 변수 값을 여러 경우(case)와 비교하여, 그 값에 맞는 코드를 실행할 때 사용하는 조건문입니다.
if-else 문을 여러 번 사용하는 것보다 가독성이 좋고, 특정 값에 대한 분기 처리가 명확할 때 유용합니다.
다음은 switch 문의 기본 사용 방법과 설명입니다.
--- switch 문의 기본 구조 ```c switch (변수) { case 값1: // 변수 값이 값1일 때 실행할 코드 break; case 값2: // 변수 값이 값2일 때 실행할 코드 break; ... default: // 변수 값이 어떤 case와도 일치하지 않을 때 실행할 코드 } ``` 주요 요소 설명 - switch(변수) : 변수의 값에 따라 어떤 case와 비교할지 결정합니다.
- case 값: : 변수 값이 이 값과 같을 때 실행할 코드 블록을 지정합니다.
- break; : 현재 case를 끝내고 switch 문 전체를 빠져나가게 합니다.
만약 생략하면 다음 case 구문까지 실행되는 ‘fall-through’ 현상이 발생합니다.
- default: : 해당하는 case가 없을 때 실행할 코드를 작성합니다.
생략 가능하지만, 예외 처리용으로 자주 사용됩니다.
--- 예제 1: 정수 변수에 따른 분기 ```c int score = 3; switch (score) { case 1: printf("점수는 1입니다.
\n"); break; case 2: printf("점수는 2입니다.
\n"); break; case 3: printf("점수는 3입니다.
\n"); break; default: printf("알 수 없는 점수입니다.
\n"); } ``` 위 코드는 `score` 값이 3이므로 세 번째 case가 실행되고, “점수는 3입니다.
”가 출력됩니다.
--- 예제 2: 문자열 비교 (C에서는 문자열 비교가 switch에서 직접 안 되므로 주의) C 언어에서 switch 문은 정수형 표현식에 대해서만 사용 가능하므로, 문자열 비교가 반드시 필요하다면 if-else 문을 사용하는 것이 일반적입니다.
그러나 일부 언어나 최신 C++에서는 문자열 기반 switch가 지원되기도 합니다.
--- 주의사항 - switch 문에서는 비교 대상인 변수와 case 값의 타입이 서로 호환되어야 합니다.
- break를 생략하면 다음 case 문까지 실행되는 ‘fall-through’ 현상이 발생할 수 있으니, 특별한 의도가 없다면 반드시 break를 넣으세요.
- case 값은 상수여야 하며, 변수나 표현식은 올 수 없습니다.
--- 정리 - switch 문은 변수 값을 여러 경우로 분기할 때 사용합니다.
- case마다 코드 블록을 작성하고, break로 구분합니다.
- default는 모든 case에 해당하지 않을 때 실행됩니다.
- 코드 가독성을 높이고, 다중 조건 처리에 효율적입니다.
--- 필요하다면 특정 언어별 switch 문 사용법도 알려드릴 수 있으니 말씀해 주세요!