
프로그램의 구조를 쌓는 while문
while문이란?
반복해서 문장을 수행해야 할 경우 while문을 사용한다. 그래서 while문을 반복문 이라고도 부른다.
다음 예제를 확인하고 while문의 메커니즘을 이해하자.
## while문의 기본 구조 예제
treehit = 0
while treehit < 10:
treehit = treehit + 1
print("나무를 %d번 찍었습니다." % treehit)
if treehit == 10:
print("나무 넘어갑니다.")
...
→ 나무를 1번 찍었습니다.
→ 나무를 2번 찍었습니다.
→ 나무를 3번 찍었습니다.
→ 나무를 4번 찍었습니다.
→ 나무를 5번 찍었습니다.
→ 나무를 6번 찍었습니다.
→ 나무를 7번 찍었습니다.
→ 나무를 8번 찍었습니다.
→ 나무를 9번 찍었습니다.
→ 나무를 10번 찍었습니다.
→ 나무 넘어갑니다.
위의 예에서 while문의 조건식은 treehit < 10 이다. 즉 treehit가 10보다 작은 동안에 while문안의 문장을 계속 수행한다.
문장을 보면 제일 먼저 treehit = treehit + 1로 treehit 값이 계속 1씩 증가한다.
그리고 나무를 treehit번만큼 찍었음을 알리는 문장을 출력하고 treehit가 10이 되면 '나무 넘어갑니다'라는 문장을 출력한다.
그리고 나면 treehit < 10 조건식이 거짓이 되므로 while문을 빠져나가게 된다.
while문 만들기
여러 가지 선택지 중 하나를 선택해서 입력받는 예제를 만들어 보자. 여러 줄을 입력한 후 number 변수에 0을 먼저 대입한다.
변수를 먼저 설정하지 않으면 다음에 나올 while문의 조건문인 number !=4에서 변수가 존재하지 않는다는 오류가 발생한다.
4를 입력하지 않으면 계속해서 prompt가 출력되고, 4를 입력하면 조건문이 거짓이 되어 while문을 빠져나가게 된다.
## while문 예제
number = 0
while number != 4:
print(prompt)
number = int(input())
...
1. Add
2. Del
3. List
4. Quit
Enter number:
아래는 출력값을 보여준다.
## while문 예제 출력값
Enter number:
1
→ 1. Add
→ 2. Del
→ 3. List
→ 4. Quit
Enter number:
4
→
while의 break문
break문을 사용하여 강제로 반복문을 멈추게 한다. 다음 예제는 IDLE 에디터를 사용해서 작성했다.
작성 후 coffee.py 파일을 저장한 후 명령 프롬프트 창을 열어 프로그램을 직접 실행해 보자.
아래 예제는 300원 커피 10개를 보유하는 자판기의 동작을 보여준다.
입력 란에 여러 숫자를 입력해 보면 다음과 같은 결과를 얻을 수 있다. 만일 커피의 개수가 0이 된다면 while문을 빠져나오게 된다.


※ 이때 'money = int(input("돈을 넣어주세요"))' 문장은 사용자로부터 값을 입력받는 부분이다.
입력받은 숫자는 money변수에 대입하는 것으로 이해하자.
while의 continue문
while문 안의 문장을 수행할 때 입력 조건을 검사해서 조건에 맞지 않으면 while문을 빠져나간다.
그런데 프로그래밍을 하다 보면 while문을 빠져나가지 않고 while문의 조건을 다시 검사하는 부분으로
돌아가게 만들고 싶은 경우가 생기게 된다. 이때 사용하는 것이 바로 continue문이다. 아래 예제의 문장 순서를 이해해 보자.
1. a가 10보다 작은 동안 a는 1만큼씩 계속 증가한다.
2. If a % 2 == 0이 참이 되는 경우는 a가 짝수일 때이고, a가 짝수이면 continue 문장을 수행한다.
3. continue문장으로 맨 처음으로 돌아가고 이로 인해 짝수는 출력되지 않는다.
※ 이때 continue문은 while문의 맨 처음(조건문 : a<10)으로 돌아가게 하는 명령어이다.
이 과정에서 반복문 내의 다음 코드는 실행되지 않는다.
## while의 continue문
a = 0
while a < 10:
a = a + 1
if a % 2 == 0: continue
print(a)
...
→ 1
→ 3
→ 5
→ 7
→ 9
무한 루프(loop)
무한 루프란 무한히 반복한다는 의미이다.
우리가 사용하는 일반 프로그램 중에서 무한 루프 개념을 사용하지 않는 프로그램은 거의 없다.
파이썬에서 무한 루프는 while문으로 구현할 수 있다. 아래는 무한 루프의 예이다.
## while의 무한 루프 예제
while True:
print("Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.")
...
→ Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.
→ Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.
→ Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.
.
.
.
위의 문장은 영원히 출력된다. 하지만 이 예제처럼 아무 의미 없이 무한 루프를 돌리는 경우는 없을 것이다.
Ctrl+C를 눌러 빠져나가자.
이번 연구 노트에는 Python의 제어문 중 while문을 알아보았다. 다음 연구 주제는 제어문의 for을 알아보도록 하겠다.
'연구노트 > Python' 카테고리의 다른 글
| Python의 함수 (0) | 2025.04.16 |
|---|---|
| Python의 제어문(for문) (0) | 2025.04.11 |
| Python 제어문(if문) (1) | 2025.04.07 |
| Python 집합 자료형, 불 자료형 (0) | 2025.04.07 |
| Python 튜플 자료형, 딕셔너리 자료형 (0) | 2025.04.07 |