안녕하세요 길벗수험서 운영팀입니다.
교재 483쪽을 기준으로 설명드리겠습니다.
처음 while문에 진입하여 3번을 만나면 i가 9인 상태에서 4번, 5번을 수행합니다.
9%3은 0이므로 hap+=i 를 수행하지 않고 지나가겠죠.
다음 회전인 i가 8인 상태에서 또한 8%3은 2이므로 hap+=i를 수행하지 않아 hap은 여전히 0 입니다.
다음 회전인 i가 7인 상태에서는 7%3은 1이됩니다. 때문에 hap+=i로 인해 hap에 7이 더해져 hap이 7이 되는 것입니다.
(%는 나머지 연산입니다. 7을 3으로 나눌 경우 몫은 2, 나머지는 1이 됩니다.
1을 3으로 나눌 경우 몫은 0, 나머지는 1이 되죠. 몫*나눔수 + 나머지 = 원래 값)
행복한 하루되세요 :)
-
관리자2019-05-09 13:10:17
안녕하세요 길벗수험서 운영팀입니다.
교재 483쪽을 기준으로 설명드리겠습니다.
처음 while문에 진입하여 3번을 만나면 i가 9인 상태에서 4번, 5번을 수행합니다.
9%3은 0이므로 hap+=i 를 수행하지 않고 지나가겠죠.
다음 회전인 i가 8인 상태에서 또한 8%3은 2이므로 hap+=i를 수행하지 않아 hap은 여전히 0 입니다.
다음 회전인 i가 7인 상태에서는 7%3은 1이됩니다. 때문에 hap+=i로 인해 hap에 7이 더해져 hap이 7이 되는 것입니다.
(%는 나머지 연산입니다. 7을 3으로 나눌 경우 몫은 2, 나머지는 1이 됩니다.
1을 3으로 나눌 경우 몫은 0, 나머지는 1이 되죠. 몫*나눔수 + 나머지 = 원래 값)
행복한 하루되세요 :)
-
관리자2019-05-10 10:27:28
안녕하세요 길벗수험서 운영팀입니다.
while 반복문이 나올 때는 조건과 변수의 변화를 주의깊게 확인하셔야 합니다.
while(i>1) 이라는 것은 i가 1보다 클 때 아래 코드를 반복하라는 의미입니다.
만약 i가 2일 때 아래의 코드를 수행하면,
while(i>1) {
i--;
sum+=i;
}
while(i>1)는 참이니 아래 코드를 수행하게 되고,
i는 1 감소하고,
sum에는 i의 값 1을 누적하고,
종료하게 되죠.
2일 때 코드에 진입하여 감소된 1로 연산을 하고 빠져나가게 되는 것입니다.
행복한 하루되세요 :)
-
*2019-05-09 13:42:26
아 정말 감사합니다 ㅎㅎ
근데 while (i > 1) 이면 i값이 2일때까지 계산하는거 아닌가요?
1까지 해야 출력이 12가 나오더라구요..