실행하면 빠른 속도로 결과가 출력되고 멈추지 않습니다. 이때 커서를 터미널 창에 놓고 Ctrl + C를 누르세요. 무슨 일이 일어난 건지 코드를 살펴봅시다. 이번에는 조건에 참을 의미하는 True가 들어갔습니다. 그리고 while 문 안에는 print() 문과 횟수에 1을 더하는 문장밖에 없습니다. 코드에 while 문을 탈출하게 하는 구문이 없어서 while 문을 끝없이 반복 수행합니다. 이런 경우를 무한 루프(infinite loop)에 빠졌다고 표현합니다. 무한 루프에 빠진 프로그램은 강제 종료해야 하며, 강제 종료할 때는 Ctrl + C를 누릅니다.
또 다른 카페에서는 손님의 닉네임을 부른 후 input() 함수로 닉네임을 입력받아서 커피를 주문한 손님과 일치하는지 확인합니다. 입력받은 닉네임은 person 변수에 저장하는데, 이 변수는 처음에 값이 비어 있는 상태로 두기 위해 아무것도 없다는 의미의 None으로 초기화하겠습니다. 이 과정을 다음과 같이 코드로 작성하고 실행합니다. 이름을 일부러 몇 번 틀리게 입력하다가 마지막에 바르게 입력하고 결과를 비교해 보세요.
customer = "토르"
person = None
while person != customer:
print("{0} 님, 커피가 준비됐습니다.".format(customer))
person = input("이름이 어떻게 되세요? ")
실행결과 |
토르 님, 커피가 준비됐습니다. 이름이 어떻게 되세요? 아이언맨 ←-- 커피를 주문한 손님과 닉네임이 일치하지 않음 토르 님, 커피가 준비됐습니다. 이름이 어떻게 되세요? 스파이더맨 ←-- 커피를 주문한 손님과 닉네임이 일치하지 않음 토르 님, 커피가 준비됐습니다. 이름이 어떻게 되세요? 토르 ←-- 커피를 주문한 손님과 닉네임 일치. while 문 탈출 |
실행해 보면 ‘토르’라고 입력할 때까지 입력받기를 반복합니다.