반복문 while
같은 코드를 여러 번 반복해서 실행하는 while 반복문.
조건 검사부터, if와 함께 쓰는 법, while True와 break로 무한 루프를 다루는 법, continue로 특정 반복만 건너뛰는 법까지 정리해요.
요즘은 고등학교에서도 코딩을 정규 과목으로 가르치는 시대입니다. 전공자가 아니어도 바이브 코딩(Vibe Coding)이나 생성형 AI(Generative AI)를 활용하면 누구나 그럴듯한 코드 결과물을 만들어낼 수 있게 되었죠.
개발 언어를 접하는, 전공자가 아닌 일반인 입문자가 많아진 것입니다.
이 시리즈는 글쓴이가 실제로 일반인, 고등학생 등 비전공자·입문자에게 파이썬을 가르치면서 정리한 내용들을 교재 형식으로 엮은 글입니다.최대한 쉽고 친절하게 설명하면서도, 컴퓨터와 프로그래밍 언어에 대한 기초 이론까지 함께 짚고 넘어가려 합니다.
고등학생, 비전공자, 완전 입문자도 따라올 수 있게끔 만든 시리즈이고, 실제 과외 수업 자료를 바탕으로 만들어서 학교 시험처럼 개념 확인 문제도 그대로 들어있어요.
중간중간 빈칸 채우기랑 학교 시험 유형 문제가 나오는데, 정답은 바로 안 보이게 접어뒀습니다. 먼저 스스로 생각해본 다음 "보기"를 눌러서 확인해보세요.
지금까지 배운 내용을 바탕으로 생각해보면, 같은 문장을 10번 출력하려면 print()를 10번 사용하면 되겠죠?
그러나 만약 이것이 100번이라면? 1000번이라면요?
ctrl+C , ctrl+V를 100번, 1000번 수행하면 될까요?
물론 가능하기는 하겠지만, 코드가 너무 길고 수정하기도 어렵습니다.
이럴 때 사용하는 것이 반복문(Loop)이에요.
while은 조건이 참(True)인 동안 계속 반복하는 반복문이에요.
반복할 코드
조건을 검사 → 참이면 코드 실행 → 다시 조건 검사 → ... → 조건이 거짓(False)이 되는 순간 반복이 끝납니다.
while count <= 5:
print(count)
count = count + 1
2
3
4
5
만약 count = count + 1을 빼먹으면 count는 계속 1이므로 1 <= 5가 영원히 True가 되어 프로그램이 끝나지 않습니다. 이것을 무한 반복(Infinite Loop)이라고 해요.
count = count + 1과 count += 1은 같은 의미입니다. +=는 자기 자신의 값을 증가시키는 축약형이에요.
| 축약형 | 원래 코드 |
|---|---|
count += 1 |
count = count + 1 |
count -= 1 |
count = count - 1 |
count *= 2 |
count = count * 2 |
반복문을 만들 때는 항상 다음 세 가지가 필요합니다. 하나라도 빠지면 원하는 결과가 나오지 않아요.
① 시작값 num = 1 ② 조건 while num <= 10: ③ 증가(또는 감소) num = num + 1
- 다음 코드가 num이 1씩 늘어나도록 빈칸을 채우시오.
num = 1
while num <= 5:
print(num)
num = num 1
정답
num = num + 1- 다음 코드의 실행 결과를 작성하시오.
num = 1
while num <= 2:
print(num)
num = num + 1 - 반복문을 만들 때 반드시 필요한 세 가지 요소를 쓰시오.
정답
2. 조건
3. 증가(또는 감소)
"짝수만 출력하고 싶다", "80점 이상이면 합격이라고 출력하고 싶다"처럼 반복하면서 매번 조건을 검사해야 하는 경우가 많습니다. 선생님이 학생 한 명씩 출석을 확인하듯, 반복될 때마다 같은 조건을 계속 검사하는 것이 while 안의 if문이에요.
while num <= 10:
if num % 2 == 0:
print(num)
num = num + 1
4
6
8
10
"if는 한 번만 실행되는 거 아닌가요?"라고 자주 묻습니다. 아니에요. if가 반복문 안에 있으면 반복될 때마다 다시 검사됩니다. while이 10번 반복되면, 안의 if도 10번 검사해요.
while score <= 100:
if score >= 60:
print(score, "합격")
score = score + 10
70 합격
80 합격
90 합격
100 합격
증가 코드가 if 블록 안에 있으면, 조건이 거짓인 반복에서는 증가가 되지 않아 무한 반복에 빠질 수 있습니다.
while num <= 10:
if num % 2 == 0:
print(num)
num = num + 1 # 홀수일 때는 증가 안 됨 → 무한 반복!
→ 증가는 항상 if 블록 밖에 두는 습관을 들이세요.
- 다음 코드의 실행 결과를 작성하시오.
num = 1
while num <= 5:
if num >= 3:
print(num)
num = num + 1
정답
4
5
- 다음 코드에서 무한 반복이 발생하는 이유를 서술하시오.
num = 1
while num <= 10:
if num % 2 == 0:
num = num + 1
정답
num = num + 1이 실행되지 않습니다. num이 처음부터 홀수(1)로 시작하면 영원히 증가하지 않아 1 <= 10이 계속 True로 남아 무한 반복이 발생합니다.
True는 항상 참이므로, while True:는 조건 없이 계속 반복합니다. 자동문이 사람이 계속 오면 계속 열리는 것처럼, 언젠가는 직접 멈춰야 해요. 그래서 사용하는 것이 break입니다 — 반복문을 즉시 종료하는 명령어예요.
print("한 번 실행")
break
print("프로그램 종료")
프로그램 종료
pw = input("비밀번호 : ")
if pw == "1234":
print("로그인 성공")
break
print("비밀번호가 틀렸습니다.")
비밀번호가 틀렸습니다.
비밀번호 : 2222
비밀번호가 틀렸습니다.
비밀번호 : 1234
로그인 성공
while True:는 무한 반복이지만, break를 만나면 즉시 끝납니다. 그래서 이 둘은 항상 함께 사용돼요.
- break를 아예 쓰지 않으면 반복문이 끝나지 않습니다.
- break를 조건 없이 맨 앞에 써버리면 그 아래 코드는 한 번도 실행되지 않습니다.
if text = "exit":처럼=과==을 헷갈리면 오류가 납니다 — 비교에는 반드시==을 씁니다.
- 다음 코드의 실행 결과를 작성하시오.
count = 1
while True:
print(count)
if count == 3:
break
count = count + 1
정답
2
3
- while True와 break를 함께 사용하는 이유를 서술하시오.
정답
continue는 현재 반복만 건너뛰고 다음 반복으로 이동하는 명령어입니다. 출석을 부를 때 결석한 학생만 건너뛰고 다음 학생을 부르는 것과 같아요.
| break | continue | |
|---|---|---|
| 동작 | 반복문 종료 | 현재 반복만 건너뜀 |
| 결과 | 반복이 끝남 | 다음 반복으로 이동, 반복은 계속됨 |
while num <= 5:
if num == 3:
num = num + 1
continue
print(num)
num = num + 1
2
4
5
만약 if num == 3: continue만 쓰면 num이 계속 3에 머물러 무한 반복이 됩니다. continue를 만나면 그 아래 코드(증가 포함)는 실행되지 않으므로, continue 전에 반드시 증가 코드를 먼저 실행해야 해요.
while num <= 3:
if num < 0:
num = num + 1
continue
print(num)
num = num + 1
1
2
3
count가 3일 때 각각 break와 continue를 만나면 이렇게 달라집니다.
break: 1 → 2 → 3 → 종료
continue: 1 → 2 → (3 건너뜀) → 4 → 5
- 다음 코드의 실행 결과를 작성하시오. (위 "3만 건너뛰기" 예제와 동일한 코드입니다)
정답
2
4
5 — num이 3일 때만 continue로 건너뛰고, 나머지는 그대로 출력됩니다.
- break와 continue의 차이점을 서술하시오.
정답
'Language > Python' 카테고리의 다른 글
| [고등학생부터, 파이썬] 09. 중첩 반복문 (feat. 별찍기 예제) (0) | 2026.08.19 |
|---|---|
| [고등학생부터, 파이썬] 08. 반복문 for (0) | 2026.08.19 |
| [고등학생부터, 파이썬] 06. 논리연산자와 중첩 if (0) | 2026.08.05 |
| [고등학생부터, 파이썬] 05. 조건문(if) (0) | 2026.08.04 |
| [고등학생부터, 파이썬] 04. 산술연산자와 비교연산자 (0) | 2026.08.04 |
댓글