Q1. if-else와 switch문이 서로 무엇이 다른가?
if-else
- 여러 조건을 비교할 때 사용.
- 각 조건이 복잡하거나 서로 다른 변수를 검사할 때 유리.
- 논리 연산자 (&&, ||, !)도 사용 가능.

✔️ if-else는 범위 비교 (>=, <=)가 필요할 때 강력
switch-case
- 한 변수의 정확한 값을 여러 경우로 비교할 때 적합하다.
- 가독성이 좋고 속도가 더 빠를 수 있다, 특히 경우의 수가 많을 때.
- 정수형, 문자형, 열거형(enum) 값 비교에 주로 사용한다.

✔️ switch는 동일한 변수에 대해 값이 정해져 있을 때 더 깔끔하고 빠름.
Q2. 언제 if-else와 switch문을 사용해야 하는가?
if-else가 더 적합한 경우
- 범위 조건이 필요할 때 (ex: x > 0, score >= 80)
- 여러 변수를 조합해 검사할 때 (ex: if (x > 0 && y < 10))
- 복잡한 논리 연산이 포함될 때 (&&, ||, !)
switch가 더 적합한 경우
- 단일 변수의 값을 여러 경우로 나눌 때 (case 'A':, case 1:)
- 경우의 수가 많고 값이 미리 정해져 있을 때 (int, char)
- 가독성을 높이려 할 때, 특히 경우의 수가 3개 이상일 때
Q3. if-else와 switch문에서 최적화하는 기준은?
if-else
- 복잡한 조건 비교가 가능하지만 가독성이 떨어질 수 있음.
- 조건이 많을수록 위에서부터 차례로 검사하므로 속도가 느려질 수 있음.
- 최적화를 위해 조건 순서를 신중히 결정해야 함.
switch-case
- 컴파일러 최적화가 잘 이루어져 속도가 더 빠를 수 있음.
- 단순 값 비교에서는 switch가 if-else보다 효율적.
- 하지만 범위 검사는 불가능하다.
기준 | if-else | switch-case |
복잡한 조건 비교 | 가능 | 불가능 |
범위 비교 (>=, <) | 가능 | 불가능 |
가독성 | 조건이 많으면 복잡해짐 | 더 깔끔하고 명확함 |
성능 | 조건 순서에 따라 성능 차이 있음 | 컴파일러 최적화로 빠름 |
적합한 경우 | 복잡한 조건, 범위 검사 | 값이 명확히 정해진 경우 |
✓ 범위 검사 → if-else
✓ 정확한 값 비교 (특히 많은 경우의 수) → switch-case
✓ 가독성이 중요하거나 성능이 더 중요한 경우에는 switch가 더 유리할 때가 많다.
728x90
'XR개발 > C언어' 카테고리의 다른 글
09_Q&A 알고리즘에 대한 물음.zip (0) | 2025.02.15 |
---|---|
08_Q&A 함수 매개변수 선언에 대한 물음.zip (0) | 2025.02.12 |
C언어 변수 범위와 순환 호출 (0) | 2025.01.27 |
C언어 함수 (0) | 2025.01.26 |
06_Q&A for문 증감식에선 ;가 없는 이유에 대한 물음.zip (0) | 2025.01.25 |