본문 바로가기
Language/Python

[고등학생부터, 파이썬] 07. 반복문 while

by kellis 2026. 8. 10.
반응형
고등학생부터, 파이썬 · 7화

반복문 while 

같은 코드를 여러 번 반복해서 실행하는 while 반복문.

조건 검사부터, if와 함께 쓰는 법, while True와 break로 무한 루프를 다루는 법, continue로 특정 반복만 건너뛰는 법까지 정리해요.

이 시리즈를 시작하며

요즘은 고등학교에서도 코딩을 정규 과목으로 가르치는 시대입니다. 전공자가 아니어도 바이브 코딩(Vibe Coding)이나 생성형 AI(Generative AI)를 활용하면 누구나 그럴듯한 코드 결과물을 만들어낼 수 있게 되었죠. 

개발 언어를 접하는, 전공자가 아닌 일반인 입문자가 많아진 것입니다.

이 시리즈는 글쓴이가 실제로 일반인, 고등학생 등 비전공자·입문자에게 파이썬을 가르치면서 정리한 내용들을 교재 형식으로 엮은 글입니다.최대한 쉽고 친절하게 설명하면서도, 컴퓨터와 프로그래밍 언어에 대한 기초 이론까지 함께 짚고 넘어가려 합니다.

 

고등학생, 비전공자, 완전 입문자도 따라올 수 있게끔 만든 시리즈이고, 실제 과외 수업 자료를 바탕으로 만들어서 학교 시험처럼 개념 확인 문제도 그대로 들어있어요.

중간중간 빈칸 채우기학교 시험 유형 문제가 나오는데, 정답은 바로 안 보이게 접어뒀습니다. 먼저 스스로 생각해본 다음 "보기"를 눌러서 확인해보세요.

 

Chapter 14
반복문 (while)

지금까지 배운 내용을 바탕으로 생각해보면, 같은 문장을 10번 출력하려면 print()를 10번 사용하면 되겠죠?

그러나 만약 이것이 100번이라면? 1000번이라면요? 

ctrl+C , ctrl+V를 100번, 1000번 수행하면 될까요?

물론 가능하기는 하겠지만, 코드가 너무 길고 수정하기도 어렵습니다.

 

이럴 때 사용하는 것이 반복문(Loop)이에요.

while은 조건이 참(True)인 동안 계속 반복하는 반복문이에요.

기본 문법
python
while 조건:
    반복할 코드

조건을 검사 → 참이면 코드 실행 → 다시 조건 검사 → ... → 조건이 거짓(False)이 되는 순간 반복이 끝납니다.

예제 · 1부터 5까지 출력
python
count = 1

while count <= 5:
    print(count)
    count = count + 1
실행 결과
1
2
3
4
5
왜 count를 증가시킬까요

만약 count = count + 1을 빼먹으면 count는 계속 1이므로 1 <= 5가 영원히 True가 되어 프로그램이 끝나지 않습니다. 이것을 무한 반복(Infinite Loop)이라고 해요.

알아두기 · += 연산자

count = count + 1count += 1은 같은 의미입니다. +=는 자기 자신의 값을 증가시키는 축약형이에요.

축약형 원래 코드
count += 1 count = count + 1
count -= 1 count = count - 1
count *= 2 count = count * 2
반복문의 핵심 3가지

반복문을 만들 때는 항상 다음 세 가지가 필요합니다. 하나라도 빠지면 원하는 결과가 나오지 않아요.

① 시작값 num = 1   ② 조건 while num <= 10:   ③ 증가(또는 감소) num = num + 1

빈칸 채우기
  1. 다음 코드가 num이 1씩 늘어나도록 빈칸을 채우시오.
    python
    num = 1
    while num <= 5:
        print(num)
        num = num 1
정답
+ — num = num + 1
학교 시험 유형
  1. 다음 코드의 실행 결과를 작성하시오.
    python
    num = 1

    while num <= 2:
        print(num)
        num = num + 1
  2. 반복문을 만들 때 반드시 필요한 세 가지 요소를 쓰시오.
정답
1. 시작값
2. 조건
3. 증가(또는 감소)

 

Chapter 15
while 안에서 if 사용하기

"짝수만 출력하고 싶다", "80점 이상이면 합격이라고 출력하고 싶다"처럼 반복하면서 매번 조건을 검사해야 하는 경우가 많습니다. 선생님이 학생 한 명씩 출석을 확인하듯, 반복될 때마다 같은 조건을 계속 검사하는 것이 while 안의 if문이에요.

예제 · 짝수만 출력하기
python
num = 1

while num <= 10:

    if num % 2 == 0:
        print(num)

    num = num + 1
실행 결과
2
4
6
8
10
선생님 TIP

"if는 한 번만 실행되는 거 아닌가요?"라고 자주 묻습니다. 아니에요. if가 반복문 안에 있으면 반복될 때마다 다시 검사됩니다. while이 10번 반복되면, 안의 if도 10번 검사해요.

예제 · 합격자만 출력
python
score = 50

while score <= 100:

    if score >= 60:
        print(score, "합격")

    score = score + 10
실행 결과
60 합격
70 합격
80 합격
90 합격
100 합격
자주 하는 실수 · 증가를 if 안에 넣는 경우

증가 코드가 if 블록 안에 있으면, 조건이 거짓인 반복에서는 증가가 되지 않아 무한 반복에 빠질 수 있습니다.

python
num = 1
while num <= 10:
    if num % 2 == 0:
        print(num)
        num = num + 1 # 홀수일 때는 증가 안 됨 → 무한 반복!

→ 증가는 항상 if 블록 밖에 두는 습관을 들이세요.

코드 읽기
  1. 다음 코드의 실행 결과를 작성하시오.
    python
    num = 1

    while num <= 5:

        if num >= 3:
            print(num)

        num = num + 1
정답
3
4
5
학교 시험 유형
  1. 다음 코드에서 무한 반복이 발생하는 이유를 서술하시오.
    python
    num = 1

    while num <= 10:

        if num % 2 == 0:
            num = num + 1
정답
num이 홀수일 때는 if 조건이 거짓이 되어 num = num + 1이 실행되지 않습니다. num이 처음부터 홀수(1)로 시작하면 영원히 증가하지 않아 1 <= 10이 계속 True로 남아 무한 반복이 발생합니다.

 

Chapter 16
while True와 break

True는 항상 참이므로, while True:조건 없이 계속 반복합니다. 자동문이 사람이 계속 오면 계속 열리는 것처럼, 언젠가는 직접 멈춰야 해요. 그래서 사용하는 것이 break입니다 — 반복문을 즉시 종료하는 명령어예요.

예제 · 한 번만 실행
python
while True:
    print("한 번 실행")
    break

print("프로그램 종료")
실행 결과
한 번 실행
프로그램 종료
예제 · 비밀번호 확인
python
while True:

    pw = input("비밀번호 : ")

    if pw == "1234":
        print("로그인 성공")
        break

    print("비밀번호가 틀렸습니다.")
실행 결과 (1111 → 2222 → 1234 순서로 입력)
비밀번호 : 1111
비밀번호가 틀렸습니다.
비밀번호 : 2222
비밀번호가 틀렸습니다.
비밀번호 : 1234
로그인 성공
선생님 TIP

while True:는 무한 반복이지만, break를 만나면 즉시 끝납니다. 그래서 이 둘은 항상 함께 사용돼요.

자주 하는 실수
  • break를 아예 쓰지 않으면 반복문이 끝나지 않습니다.
  • break를 조건 없이 맨 앞에 써버리면 그 아래 코드는 한 번도 실행되지 않습니다.
  • if text = "exit":처럼 ===을 헷갈리면 오류가 납니다 — 비교에는 반드시 ==을 씁니다.
코드 읽기
  1. 다음 코드의 실행 결과를 작성하시오.
    python
    count = 1

    while True:

        print(count)

        if count == 3:
            break

        count = count + 1
정답
1
2
3
학교 시험 유형
  1. while True와 break를 함께 사용하는 이유를 서술하시오.
정답
while True는 조건 없이 무한히 반복하는 구조이기 때문에, 특정 상황(사용자 입력, 특정 값 도달 등)이 되었을 때 break로 직접 반복을 끝내주지 않으면 프로그램이 영원히 종료되지 않습니다. 두 개를 함께 써서 "원하는 조건이 될 때까지 반복하다가, 그 순간 멈추는" 동작을 만들 수 있습니다.

 

Chapter 17
continue

continue는 현재 반복만 건너뛰고 다음 반복으로 이동하는 명령어입니다. 출석을 부를 때 결석한 학생만 건너뛰고 다음 학생을 부르는 것과 같아요.

  break continue
동작 반복문 종료 현재 반복만 건너뜀
결과 반복이 끝남 다음 반복으로 이동, 반복은 계속됨
예제 · 3만 건너뛰기
python
num = 1
while num <= 5:
    if num == 3:
        num = num + 1
        continue
    print(num)
    num = num + 1
실행 결과
1
2
4
5
왜 증가를 먼저 할까요

만약 if num == 3: continue만 쓰면 num이 계속 3에 머물러 무한 반복이 됩니다. continue를 만나면 그 아래 코드(증가 포함)는 실행되지 않으므로, continue 전에 반드시 증가 코드를 먼저 실행해야 해요.

예제 · 음수는 출력하지 않기
python
num = -3
while num <= 3:
    if num < 0:
        num = num + 1
        continue
    print(num)
    num = num + 1
실행 결과
0
1
2
3
break vs continue

count가 3일 때 각각 break와 continue를 만나면 이렇게 달라집니다.

break: 1 → 2 → 3 → 종료

continue: 1 → 2 → (3 건너뜀) → 4 → 5

코드 읽기
  1. 다음 코드의 실행 결과를 작성하시오. (위 "3만 건너뛰기" 예제와 동일한 코드입니다)
정답
1
2
4
5 — num이 3일 때만 continue로 건너뛰고, 나머지는 그대로 출력됩니다.
학교 시험 유형
  1. break와 continue의 차이점을 서술하시오.
정답
break는 반복문을 완전히 종료시켜서 반복문 다음 코드로 넘어갑니다. continue는 반복문을 끝내지 않고, 현재 진행 중인 한 번의 반복만 건너뛰고 다음 반복을 계속 진행합니다.
다음 화 예고 — 8화부터는 for 반복문range() 함수로 넘어가서, while과는 다른 방식으로 반복을 만드는 법을 다뤄볼게요.
반응형

댓글