18.5 연습문제 질문
, 이도은 / 학생 / 행정학과님이 작성0과 73 사이의 숫자 중 3으로 끝나는 숫자만 출력되게 만드려는 코드를 작성했습니다.
그런데 교재에 보면 마지막에
print(i, end=' ')
i+=i
코드가 붙어있는 것을 볼 수 있는데요.
여기서 i+=i 가 왜 추가되어있는지 모르겠습니다.
물론 저 코드를 빼고 실행시켜보니 3 3 3 3 3 3 ... 으로 이루어진 무한 루프가 돌아가고 있음을 확인했습니다. 하지만 원리를 모르겠어서 질문드립니다.
Re: 18.5 연습문제 질문
, 도장_ 관리자님이 작성포럼 상단 고정에 있는 시각화 사이트입니다.
여기서 코드를 단계별로 실행해보세요.
Next 버튼으로 실행하면서 코드가 실행되는 단계를 살펴보면 됩니다.
끝자리가 3이 아닐 때는 continue로 건너 뜁니다. 이때는 i를 1 증가시켜서 처리하고요.
그러나 끝자리가 3이면 첫 번째 if 블록은 실행되지 않습니다. i를 1 증가시키는 코드가 없죠.
끝자리가 3인 숫자를 출력하는 print가 실행되고, i를 증가시켜야 합니다. 그래야 다음 숫자로 진행할 수 있으니까요.
i를 증가시키는 로직은 두 가지입니다.
1. 끝자리가 3이 아닐 때
2. 끝자리가 3일 때
i를 증가시키는 로직을 하나만 두고 문제를 해결하는 코드를 작성해도 됩니다.
continue, break를 설명하기 위해 다소 작위적으로 만든 예제입니다. 좀 더 간단하게는 다음과 같습니다.
for i in range(0, 74):
if i % 10 == 3:
print(i, end=' ')