for문과 똑같이 반복을 하지만 약간 다르다.
for문은 반복 대상을 정해 반복 작업을 하지만 while문은 조건을 만족하는 동안 끝없이 반복한다.
while 조건:
실행할 명령1
실행할 명령2
. . .
예를 들어 사과를 박스 안에 넣어야 하는데 한 박스에는 10개씩 들어간다고 가정해보자.
이 사과를 계속해서 박스를 채우고 10개 미만이 되면 반복작업을 멈추는 코드를 만들어보겠다.
apple = 168
box = 0
while apple>10 :
apple -=10
box += 1
print("사과 1박스 생성. 총 {0}박스".format(box))
if apple<10 :
print("박스를 모두 싸고 사과는 {0}개 남았습니다.".format(apple))
실행결과
사과 1박스 생성. 총 1박스
사과 1박스 생성. 총 2박스
사과 1박스 생성. 총 3박스
사과 1박스 생성. 총 4박스
사과 1박스 생성. 총 5박스
사과 1박스 생성. 총 6박스
사과 1박스 생성. 총 7박스
사과 1박스 생성. 총 8박스
사과 1박스 생성. 총 9박스
사과 1박스 생성. 총 10박스
사과 1박스 생성. 총 11박스
사과 1박스 생성. 총 12박스
사과 1박스 생성. 총 13박스
사과 1박스 생성. 총 14박스
사과 1박스 생성. 총 15박스
사과 1박스 생성. 총 16박스
박스를 모두 싸고 사과는 8개 남았습니다.
만약 while의 조건이 항상 참 (True)일 경우 while의 실행문은 끝없이 반복하게 된다.
이를 무한루프라고 하는데 콘솔창에 계속해서 이 실행 결과가 나타나게된다.
이때는 ctrl + c 를 눌러주게 되면 멈출 수 있다.
while문과 for문이 항상 헷갈렸는데 이번 기회에 확실하게 알 수 있었다.
for문은 반복대상이 존재하여 반복대상을 기준으로 작업을 수행하지만 while문은 그냥 조건이 참일 때에는 계속해서 반복 작업을 수행한다.
잊지말자!!