더북(TheBook)

i에 초깃값을 저장하는 코드를 while 문 전에 넣어 코드 둘째 줄에서 조건을 검사할 수 있게 합니다. i19일 때까지만 반복하므로 반복 조건을 i <= 19 또는 i < 20으로 작성합니다(예시에서는 for 문과 비교하기 위해 i < 20으로 했습니다). 반복문 내부에서 반복할 명령어를 그대로 넣어 줍니다. 그리고 추가로 i를 1 증가시키는 i += 1 코드가 반드시 필요합니다. for 문에서는 반복 구간 안에서 자동으로 다음 데이터를 i에 저장하기 때문에 이런 부분이 필요 없었습니다. 하지만 while 문에서는 조건으로 반복 여부를 확인하므로 반복할 때마다 i를 1씩 증가시켜 조건 값을 바꿔 줘야 합니다.

NOTE 무한 루프

앞의 코드에서 i += 1이 없다면 반복문이 종료되지 않는 문제가 생깁니다. i = 1인 상태가 계속 유지되기 때문에 while 문의 반복 조건 i < 20을 항상 충족하게 됩니다. 그러면 print(a, '선생님, 다시는 청소를 빼먹지 않겠습니다.')가 계속 반복되죠. 이를 프로그래밍에서는 무한 루프라고 합니다. 루프(loop)는 ‘고리, 순환’이라는 의미가 있는데, 무한 루프는 한 마디로 뫼비우스의 띠처럼 프로그램이 무한으로 실행될 뿐 종료되지 않는다는 뜻입니다. 프로그램이 무한 루프에 빠지면 컴퓨터 자원(CPU나 메모리 등)을 계속 차지한 상태가 되어서 다음 코드를 실행하지 못하거나 메모리 부족 등의 문제가 발생합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.