i hap 출력
10 0 12
9 7
8 ?
.
.
.
.
1
<질문>
디버깅에서 i=8일때 hap의 값이 11이 되는 이유를 알고 싶습니다.
1. i가 9일때 i=i-1에 의해서 8
2. 8을 3으로 나눈 나머지가 1이 아니므로 while문으로 이동.
3. i=i-1에 의해서 7
4. 7을 3으로 나눈 나머지가 1이므로 hap=hap+i; 에 의하여 7
이러한 방식으로 i=8 일때, 대입을 해보니 hap의 값이 14가 나옵니다..
어떻게 hap의 값이 11이 되는지, 저의 대입방식이 잘못된 것인지 답변 부탁드리겠습니다.
감사합니다.
안녕하세요.
i는 10, hap은 0을 초기값으로 지정한 후
i>1을 만족하므로 반복문을 진입합니다.
i-- 에 의해 i는 9가 됩니다.
i%3은 0입니다.
i는 9이므로 i>1를 만족합니다. 반복문을 진입합니다.
i-- 에 의해 i는 8이 됩니다.
i%3은 2입니다.
i는 8이므로 i>1를 만족합니다. 반복문을 진입합니다.
i-- 에 의해 i는 7이 됩니다.
i%3은 1이므로 hap에 i를 누적합니다. hap은 7이 됩니다.
i는 7이므로 i>1를 만족합니다. 반복문을 진입합니다.
i-- 에 의해 i는 6이 됩니다.
i%3은 0입니다.
.
.
.
디버깅표는 좁은 공간을 활용하기 위해 각 변수의 가로 위치를 감안하지 않고 작성합니다.
각 변수의 세로 값의 변화만 확인하시면 됩니다.
디버깅 방법과 결과를 확인하는 방법을 1권 141쪽에서 확인하세요.
오늘도 즐거운 하루 되세요.
-
*2018-03-12 10:58:56
안녕하세요.
i는 10, hap은 0을 초기값으로 지정한 후
i>1을 만족하므로 반복문을 진입합니다.
i-- 에 의해 i는 9가 됩니다.
i%3은 0입니다.
i는 9이므로 i>1를 만족합니다. 반복문을 진입합니다.
i-- 에 의해 i는 8이 됩니다.
i%3은 2입니다.
i는 8이므로 i>1를 만족합니다. 반복문을 진입합니다.
i-- 에 의해 i는 7이 됩니다.
i%3은 1이므로 hap에 i를 누적합니다. hap은 7이 됩니다.
i는 7이므로 i>1를 만족합니다. 반복문을 진입합니다.
i-- 에 의해 i는 6이 됩니다.
i%3은 0입니다.
.
.
.
디버깅표는 좁은 공간을 활용하기 위해 각 변수의 가로 위치를 감안하지 않고 작성합니다.
각 변수의 세로 값의 변화만 확인하시면 됩니다.
디버깅 방법과 결과를 확인하는 방법을 1권 141쪽에서 확인하세요.
오늘도 즐거운 하루 되세요.