while문에서 i를 2까지 돌려야 하는 것까진 알겠는데요
if문 식이 나머지가 1이 되지 않으면 hap은 0으로 계속 있어야 할텐데
왜 i가 9부터 는 hap이 7이 되나요?
나머지가 0이면 계속 hap은 0인거 아닌가요
해설 보니
i hap
10 0
9 7
8 11
7 12
이런식으로 되있는데 7하고 4에서만 나머지가 1인건데 왜
7에서는 hap이 7이 아니고 6부터는 왜 디버깅 결과는 없는건지
이해가 안 가네요
안녕하세요.
i가 10, hap은 0으로 시작합니다.
while (i > 1) 조건을 만족하므로 while문을 진입합니다.
i--에 의해 i는 9가 됩니다.
if( i%3 == 1) i가 9이므로 3으로 나눈 나머지는 0이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 8이 됩니다.
if( i%3 == 1) i가 8이므로 3으로 나눈 나머지는 2이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 7이 됩니다.
if( i%3 == 1) i가 7이므로 3으로 나눈 나머지는 1이므로 조건을 만족합니다.
hap += i, 즉 hap에 i를 누적하므로 hap은 7이 됩니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 6이 됩니다.
if( i%3 == 1) i가 6이므로 3으로 나눈 나머지는 0이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 5가 됩니다.
if( i%3 == 1) i가 5이므로 3으로 나눈 나머지는 2이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 4가 됩니다.
if( i%3 == 1) i가 4이므로 3으로 나눈 나머지는 1이므로 조건을 만족합니다.
hap += i, 즉 hap에 i를 누적합니다. hap은 7이었는데, 4를 누적하므로 hap은 11이 됩니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 3이 됩니다.
if( i%3 == 1) i가 3이므로 3으로 나눈 나머지는 0이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 2가 됩니다.
if( i%3 == 1) i가 2이므로 3으로 나눈 나머지는 2이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 1이 됩니다.
if( i%3 == 1) i가 1이므로 3으로 나눈 나머지는 1이므로 조건을 만족합니다.
hpa += i, 즉 hap에 i를 누적합니다. hap은 11이었는데, 1을 누적하므로 hap은 12가 됩니다.
while (i > 1) 조건을 만족하지 않으므로 while문을 빠져나옵니다.
hap 12가 출력됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-05-15 10:39:28
안녕하세요.
i가 10, hap은 0으로 시작합니다.
while (i > 1) 조건을 만족하므로 while문을 진입합니다.
i--에 의해 i는 9가 됩니다.
if( i%3 == 1) i가 9이므로 3으로 나눈 나머지는 0이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 8이 됩니다.
if( i%3 == 1) i가 8이므로 3으로 나눈 나머지는 2이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 7이 됩니다.
if( i%3 == 1) i가 7이므로 3으로 나눈 나머지는 1이므로 조건을 만족합니다.
hap += i, 즉 hap에 i를 누적하므로 hap은 7이 됩니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 6이 됩니다.
if( i%3 == 1) i가 6이므로 3으로 나눈 나머지는 0이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 5가 됩니다.
if( i%3 == 1) i가 5이므로 3으로 나눈 나머지는 2이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 4가 됩니다.
if( i%3 == 1) i가 4이므로 3으로 나눈 나머지는 1이므로 조건을 만족합니다.
hap += i, 즉 hap에 i를 누적합니다. hap은 7이었는데, 4를 누적하므로 hap은 11이 됩니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 3이 됩니다.
if( i%3 == 1) i가 3이므로 3으로 나눈 나머지는 0이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 2가 됩니다.
if( i%3 == 1) i가 2이므로 3으로 나눈 나머지는 2이므로 조건을 만족하지 않습니다.
while (i > 1) 조건을 만족하므로 while문을 반복합니다.
i--에 의해 i는 1이 됩니다.
if( i%3 == 1) i가 1이므로 3으로 나눈 나머지는 1이므로 조건을 만족합니다.
hpa += i, 즉 hap에 i를 누적합니다. hap은 11이었는데, 1을 누적하므로 hap은 12가 됩니다.
while (i > 1) 조건을 만족하지 않으므로 while문을 빠져나옵니다.
hap 12가 출력됩니다.
오늘도 즐거운 하루 되세요.