정처기 감자정처기 감자
공통 기초제어문/반복문

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

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

코딩C언어JavaPython
읽는데 13분 소요
처음 쓰인 날: 2026-02-03
마지막 수정일: 2026-10-04
조회수: —
선수학습(1개)
  • 조건문 (if, if-else, else if)

요약

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

조건문(if-else)을 먼저 읽고 오면 이 페이지를 더 쉽게 이해할 수 있습니다.

switch-case 핵심 정리

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

switch-case 핵심 정리

개념설명예시
switch변수의 값에 따라 분기 1switch(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문이란?

if-else문은 조건이 참인지 거짓인지 검사하는 반면, switch-case문은 변수의 값에 따라 여러 경우 중 하나를 선택해서 실행하는 조건문입니다.

c
코드 하이라이팅 중…

기본 예시

c
코드 하이라이팅 중…
`/`는 몫을 구하는 연산자입니다
`85 / 10 = 8`처럼 정수끼리 나누면 소수점 없이 몫만 나옵니다. 자세한 내용은 산술 연산자를 참고하세요.

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

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

switch-case문이란?

if-else문은 조건이 참인지 거짓인지 검사하는 반면, switch-case문은 변수의 값에 따라 여러 경우 중 하나를 선택해서 실행하는 조건문입니다.

java
코드 하이라이팅 중…

기본 예시

java
코드 하이라이팅 중…
Java에서 정수 나눗셈은 소수점을 버립니다
`85 / 10 = 8`처럼 정수끼리 나누면 소수점 없이 몫만 나옵니다. C언어와 동일한 동작입니다.

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로 여러 조건을 순서대로 검사합니다. if-else문을 이미 배웠다면 elif만 추가로 이해하면 됩니다.

python
코드 하이라이팅 중…

기본 예시

python
코드 하이라이팅 중…

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

조건score = 85실행 여부
score >= 9085 >= 90 → 거짓건너뜀
score >= 8085 >= 80 → 참실행
score >= 70검사 안 함건너뜀
else검사 안 함건너뜀
elif 순서가 중요합니다
조건을 위에서부터 순서대로 검사하므로, 범위가 좁은 조건(score >= 90)을 먼저 작성해야 합니다. `score >= 70`을 먼저 쓰면 85점도 C로 분류됩니다.

score = 85일 때

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

fall-through (break 없이 실행)

switch는 일치하는 case를 찾으면 그 지점부터 코드를 순서대로 실행합니다. case 라벨은 "진입점"일 뿐, 값을 다시 비교하지 않습니다. 그래서 break가 없으면 다음 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 없으면 fall-through 발생
break가 없으면 switch문이 종료되지 않고 아래 case들이 연속으로 실행됩니다. 시험에서 break 유무를 꼭 확인하세요.

break의 역할

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

c
코드 하이라이팅 중…

break 있음 vs 없음 비교

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

default의 위치

default는 보통 마지막에 위치하지만, case 1 앞이나 case 사이 등 어느 위치에 놓아도 동작합니다. 일치하는 case가 없으면 default의 위치와 관계없이 default로 이동합니다.

c
코드 하이라이팅 중…
default에도 break가 필요합니다
default가 중간에 있을 때 break가 없으면, default 아래의 case들도 fall-through로 실행됩니다. default의 위치와 break 유무를 함께 확인하세요.

여러 case 묶기

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

c
코드 하이라이팅 중…

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


fall-through (break 없이 실행)

switch는 일치하는 case를 찾으면 그 지점부터 코드를 순서대로 실행합니다. case 라벨은 "진입점"일 뿐, 값을 다시 비교하지 않습니다. 그래서 break가 없으면 다음 case의 코드도 연속으로 실행됩니다. 이를 fall-through라고 합니다.

java
코드 하이라이팅 중…

실행 흐름

text
코드 하이라이팅 중…
단계실행출력
1case 2로 이동-
2"B" 출력B
3case 3으로 fall-throughC
4default로 fall-throughD
a = 2일 때 case 1은 건너뛰고 case 2로 진입한 뒤 break 없이 case 3, default까지 실행되어 BCD가 출력되는 그림
a = 2이므로 case 2로 진입하고, break가 없어 case 3과 default까지 이어서 실행되어 BCD가 출력됩니다 (fall-through).
break 없으면 fall-through 발생
break가 없으면 switch문이 종료되지 않고 아래 case들이 연속으로 실행됩니다. 시험에서 break 유무를 꼭 확인하세요.

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가 결합된 문제입니다. 복합 대입 연산자란 k = k + 3을 k += 3으로 줄여 쓰는 것입니다.

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의 초기값에 주의하세요
k의 초기값은 1이지만, case 3에서 `k = 0`으로 새로 대입합니다. `+=`(더하기)가 아니라 `=`(대입)이므로 초기값 1은 사라지고 0부터 시작합니다.

복합 대입 연산자 정리

연산자의미예시 (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:
Python에는 fall-through가 없습니다
C/Java의 switch-case는 break가 없으면 다음 case로 넘어가지만, Python의 if-elif-else는 조건이 참인 블록 하나만 실행하고 끝납니다. break를 쓸 필요가 없습니다.

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(100)은 int, type(100.0)은 float입니다
`100`은 정수(int), `100.0`은 실수(float)입니다. `type(100.0) == type(100)`은 거짓이므로 첫 번째 if를 통과하지 못합니다. 정수와 실수의 자료형이 다르다는 점에 주의하세요.

type() 비교 정리

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

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

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.

switch-case문을 이해했다면 반복문(for, while)도 함께 익혀보세요. 시험에서는 switch-case 안에 반복문이 포함된 복합 문제도 출제됩니다.


Footnotes

  1. 분기란 여러 갈래 중 하나를 골라 실행하는 것을 말합니다. ↩ ↩2


메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999