switch-case문과 fall-through (if-elif-else)

코딩C언어JavaPython
읽는데 11분 소요
처음 쓰여진 날: 2026-02-03
마지막 수정일: 2026-02-18
조회수: 10

요약

switch-case문의 기본 구조와 fall-through, Python의 if-elif-else를 알아봅니다. 정보처리기사 실기에 자주 출제되는 조건 분기 문제를 풀기 위한 핵심 개념을 정리합니다.

switch-case 핵심 정리

개념설명예시
switch변수의 값에 따라 분기switch(a)
case특정 값일 때 실행case 1:
breakswitch문 종료break;
default어떤 case에도 해당 안 될 때default:
fall-throughbreak 없이 다음 case 실행(아래 설명)

switch-case 핵심 정리

개념설명예시
switch변수의 값에 따라 분기switch(a)
case특정 값일 때 실행case 1:
breakswitch문 종료break;
default어떤 case에도 해당 안 될 때default:
fall-throughbreak 없이 다음 case 실행(아래 설명)

if-elif-else 핵심 정리

Python에는 switch-case문이 없습니다. 대신 if-elif-else를 사용합니다.

개념설명예시
if첫 번째 조건 검사if a == 1:
elif추가 조건 검사elif a == 2:
else어떤 조건에도 해당 안 될 때else:

switch-case문이란?

switch-case문은 변수의 값에 따라 여러 경우 중 하나를 선택해서 실행하는 조건문입니다.

c
코드 하이라이팅 중...

기본 예시

c
코드 하이라이팅 중...

score / 10의 결과에 따라 실행되는 case가 달라집니다.

score / 10 결과실행되는 case출력
10case 10 → case 9 (fall-through)A
9case 9A
8case 8B
7case 7C
그 외defaultF

switch-case문이란?

switch-case문은 변수의 값에 따라 여러 경우 중 하나를 선택해서 실행하는 조건문입니다.

java
코드 하이라이팅 중...

기본 예시

java
코드 하이라이팅 중...

score / 10의 결과에 따라 실행되는 case가 달라집니다.

score / 10 결과실행되는 case출력
10case 10 → case 9 (fall-through)A
9case 9A
8case 8B
7case 7C
그 외defaultF

if-elif-else문이란?

Python에는 C/Java의 switch-case문이 없습니다. 대신 if-elif-else로 여러 조건을 순서대로 검사합니다.

python
코드 하이라이팅 중...

기본 예시

python
코드 하이라이팅 중...

조건을 위에서부터 순서대로 검사하고, 처음으로 참인 조건의 코드만 실행합니다.

조건score = 85실행 여부
score >= 9085 >= 90 → 거짓건너뜀
score >= 8085 >= 80 → 실행
score >= 70검사 안 함건너뜀
else검사 안 함건너뜀

score = 85일 때

c
코드 하이라이팅 중...
단계계산
1. score / 10 계산85 / 10 = 8
2. case 8로 이동printf("B") 실행
3. break로 종료switch문 탈출
출력 결과B


fall-through (break 없이 실행)

break가 없으면 해당 case 실행 후 다음 case도 연속으로 실행됩니다. 이를 fall-through라고 합니다.

c
코드 하이라이팅 중...

실행 흐름

text
코드 하이라이팅 중...
단계실행출력
1case 2로 이동-
2"B" 출력B
3case 3으로 fall-throughC
4default로 fall-throughD
switch-case fall-through
break가 없으면 아래 case들이 연속으로 실행됩니다 (fall-through).

break의 역할

break는 switch문을 즉시 종료합니다.

c
코드 하이라이팅 중...

break 있음 vs 없음 비교

상황a = 2일 때 출력
모든 case에 break 있음B
모든 case에 break 없음BCD

default의 위치

default는 보통 마지막에 위치하지만, 어디에 있어도 동작합니다.

c
코드 하이라이팅 중...

일치하는 case가 없으면 default로 이동합니다. default에 break가 없으면 그 아래 case도 fall-through됩니다.


여러 case 묶기

같은 동작을 하는 case는 연속으로 작성하여 묶을 수 있습니다.

c
코드 하이라이팅 중...

case 10:에 코드가 없으면 바로 case 9:로 fall-through되어, 10과 9 모두 같은 코드를 실행합니다.


fall-through (break 없이 실행)

break가 없으면 해당 case 실행 후 다음 case도 연속으로 실행됩니다. 이를 fall-through라고 합니다.

java
코드 하이라이팅 중...

실행 흐름

text
코드 하이라이팅 중...
단계실행출력
1case 2로 이동-
2"B" 출력B
3case 3으로 fall-throughC
4default로 fall-throughD
Java switch-case fall-through
break가 없으면 아래 case들이 연속으로 실행됩니다 (fall-through).

break의 역할

break는 switch문을 즉시 종료합니다.

java
코드 하이라이팅 중...

break 있음 vs 없음 비교

상황a = 2일 때 출력
모든 case에 break 있음B
모든 case에 break 없음BCD

여러 case 묶기

같은 동작을 하는 case는 연속으로 작성하여 묶을 수 있습니다.

java
코드 하이라이팅 중...

case 10:에 코드가 없으면 바로 case 9:로 fall-through되어, 10과 9 모두 같은 코드를 실행합니다.


실전 예제: 복합 대입 연산자와 fall-through

기출문제에서 자주 나오는 패턴으로, 복합 대입 연산자 (+=, -=)와 fall-through가 결합된 문제입니다.

java
코드 하이라이팅 중...

단계별 실행 과정

i = 3이므로 case 3으로 진입합니다. break가 없으므로 이후 모든 case가 fall-through됩니다.

단계실행되는 case코드k 값
-초기값int k = 1;1
1case 3k = 00
2case 4 (fall-through)k += 3 (0 + 3)3
3case 5 (fall-through)k -= 10 (3 - 10)-7
4default (fall-through)k-- (-7 - 1)-8

출력 결과: -8

복합 대입 연산자 정리

연산자의미예시 (k = 3일 때)
+=더한 후 대입k += 3 -> k는 6
-=뺀 후 대입k -= 10 -> k는 -7
--1 감소k-- -> k는 2

C/Java의 switch-case와 비교

C/Java의 switch-case문은 변수의 값이 정확히 일치하는 case로 이동합니다. Python의 if-elif-else는 조건식을 자유롭게 작성할 수 있어 더 유연합니다.

switch-case를 if-elif-else로 변환

C/Java의 switch-case를 Python으로 변환하면 다음과 같습니다.

python
코드 하이라이팅 중...

C/Java와의 핵심 차이점

구분C/Java switch-casePython if-elif-else
fall-throughbreak 없으면 다음 case 실행해당 없음 (하나만 실행)
break 필요필수 (없으면 fall-through)불필요
조건값 일치만 가능범위, 비교 등 자유롭게 가능
defaultdefault:else:

if-elif-else 실행 흐름

if-elif-else는 위에서 아래로 조건을 순서대로 검사합니다. 처음으로 참인 조건의 코드만 실행하고 나머지는 건너뜁니다.

python
코드 하이라이팅 중...

실행 흐름

text
코드 하이라이팅 중...

여러 조건 묶기

C/Java에서 여러 case를 묶는 것처럼, Python에서는 or 연산자를 사용합니다.

python
코드 하이라이팅 중...

in 연산자를 사용하면 더 간결하게 작성할 수 있습니다.

python
코드 하이라이팅 중...

실전 예제: type()을 활용한 조건 분기

기출문제에서 출제된 패턴으로, type() 함수로 자료형을 비교하여 분기하는 문제입니다.

python
코드 하이라이팅 중...

단계별 실행 과정

각 인자의 자료형에 따라 다른 분기가 실행됩니다.

호출인자 값자료형일치하는 조건반환값
func(a)"100.0"strtype("") == type("") → elif5 (len("100.0"))
func(b)100.0float어디에도 해당 안 됨 → else20
func(c)(100, 200)tuple어디에도 해당 안 됨 → else20

출력 결과: 45 (5 + 20 + 20)

type() 비교 정리

type() 결과type(100)과 비교type("")과 비교
"100.0"str거짓
100.0float거짓거짓
(100, 200)tuple거짓거짓
100int거짓

정보처리기사 실기 기출 문제