더북(TheBook)

다음처럼 print()와 조건문의 순서를 바꾸면 어떻게 될까요?

answer = int(input('숫자 입력: '))
for i in range(20):
    if i == answer:
        break
    print(i, end=' ')
실행결과
숫자 입력: 12
0 1 2 3 4 5 6 7 8 9 10 11

12를 입력하면 이전과 달리 11까지 출력됩니다. 이런 차이가 왜 발생하는 걸까요? 바로 위에서부터 아래로 실행되는 순차구조 때문입니다. 코드를 잘 봅시다. 이전 코드의 반복문에서는 먼저 print()로 숫자를 출력한 후에 조건문을 실행합니다. 즉, ianswer의 값이 같을 때도 출력 명령어가 실행된 후에 break를 만나기 때문에 i가 출력되고 나서 반복문이 종료됩니다. 하지만 바뀐 코드에서는 출력 명령어보다 조건문이 더 위에 있기 때문에 ianswer의 값이 같으면 break가 먼저 실행되어 반복문을 종료합니다. 그래서 입력받은 숫자가 출력되지 않죠. 이처럼 break가 어디에 위치하느냐에 따라 결과가 달라지므로 break를 사용할 때 유의해야 합니다.

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