심사문제 18.6 관련 질문 드립니다.
, 8 7님이 작성정답과 관련은 없지만 18.6 문제를 해결하는 과정에 의문이 생겼습니다.
start, stop = map(int, input().split())
i = start
while True:
if i > stop:
break
if i % 10 != 3:
print(i, end=' ')
i += 1
상기 코드를 실행하고 12 20 을 입력하면
첫 번째 코드 순환에서 12가 출력되고,
두 번째 코드 순환에서 i == 13이 되어 무한루프에 걸릴 것으로 생각했는데,
실제 실행해보니 아무것도 출력되지 않고 무한루프에 바로 걸렸습니다.
이유가 뭘까 너무 궁금해 질문 드립니다.. 답변해주시면 너무 감사드리겠습니다..
항상 잘 배우고 있습니다. 감사합니다!
Re: 심사문제 18.6 관련 질문 드립니다.
, 도장_ 관리자님이 작성i가 13일 때
if i % 10 != 3:
i % 10은 3입니다.
3 != 3의 결과는 False입니다.
따라서 i = 13인 상태에서 다시 while 반복문 처음으로 돌아갑니다.
첫 번째 if도 False, 두 번째 if도 False이므로
i 값은 13에서 고정이고, 반복문을 탈출하지 못합니다.
그게 무한 루프의 이유입니다.