i % 3을 했을때 ==1이나오면 다음을 실행할텐데
처음에 i가 10이 대입이 되었을때 3으로 나누면 몫은 3이고 나머지가 1이 아닌가요 ?
그래서 hap은
10 7 4 = 21이 되어야 된다고 생각하는데
책은 0 7 4 1 해서 출력은 12라고 되어있어서
1은도대체 어디서 나온건지도 궁금하고 10은 왜 안되는 건지도 궁금합니다.
공부방향을 잘못 잡은것인지도 ...생각이 들고 어렵네요 ㅠㅠ
안녕하세요 길벗수험서 운영팀입니다.
프로그래밍 코드는 원리로만 파악하면(조건과 반복만 체크) 간단하게 결과를 유추할 수 있지만,
실제로 순차적으로 변수값 변화를 추적하지(디버깅 과정) 않으면 올바른 결과를 내지 못할 때가 많습니다.
처음에 i가 10을 갖고 while문으로 진입 시
while문 조건을 체크하게 되고 -- 10>1은 참
i의 값을 1 감소시킵니다. -- i는 9가 됨
if문 조건을 체크하고 -- i(9)%3은 0이므로 거짓
다시 while문의 처음으로 돌아가 while문 조건을 체크하게 되죠.
마지막에 i가 2를 갖고 while문으로 진입 시
while문 조건을 체크하게 되고 -- 2>1은 참
i의 값을 1 감소시킵니다. -- i는 1이 됨
if문 조건을 체크하고 -- 1%3은 1이므로 참
hap의 i의 값 1을 누적하게 됩니다.
다시 while문의 처음으로 돌아가 while문 조건을 체크하게 되죠.
i(1) > 1은 거짓이 되므로 while문을 빠져나가게 되고, 화면에는 hap이 출력되게 됩니다.
행복한 하루되세요 :)
-
관리자2021-06-09 09:47:55
안녕하세요 길벗수험서 운영팀입니다.
프로그래밍 코드는 원리로만 파악하면(조건과 반복만 체크) 간단하게 결과를 유추할 수 있지만,
실제로 순차적으로 변수값 변화를 추적하지(디버깅 과정) 않으면 올바른 결과를 내지 못할 때가 많습니다.
처음에 i가 10을 갖고 while문으로 진입 시
while문 조건을 체크하게 되고 -- 10>1은 참
i의 값을 1 감소시킵니다. -- i는 9가 됨
if문 조건을 체크하고 -- i(9)%3은 0이므로 거짓
다시 while문의 처음으로 돌아가 while문 조건을 체크하게 되죠.
마지막에 i가 2를 갖고 while문으로 진입 시
while문 조건을 체크하게 되고 -- 2>1은 참
i의 값을 1 감소시킵니다. -- i는 1이 됨
if문 조건을 체크하고 -- 1%3은 1이므로 참
hap의 i의 값 1을 누적하게 됩니다.
다시 while문의 처음으로 돌아가 while문 조건을 체크하게 되죠.
i(1) > 1은 거짓이 되므로 while문을 빠져나가게 되고, 화면에는 hap이 출력되게 됩니다.
행복한 하루되세요 :)