디버깅 결과가 이해가 안됩니다.
교재에 나와있는 디버깅 결과
i hap 출력
10 0 12
9 7
8 11
7 12
6
5
4
3
2
1
개인적인 디버깅 결과
i hap 출력
10 0 12
9 0
8 7
7 7
6 7
5 11
4 11
3 11
2 11
1 12
어떻게 i가 9일 때 hap값이 7이 나오나요?
while(9>1)
{
9 - 1 = 8;
if( 8 % 3 == 1 )
hap = hap + i;
}
i가 9일 때 if문 괄호 안의 내용( 8 % 3 == 1 )이 거짓이므로
hap = hap + i가 실행되지 않고 while문 처음으로 돌아가기 때문에
이때 hap의 값은 맨 처음 초기화 했던 0 아닌가요?
이해가 안갑니다. 도와주세요...
안녕하세요. 길벗 수험서 운영팀입니다.
일반적인 디버깅표는 변수가 변하는 값을 순서대로 적어서 기록합니다.
단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 반복문의 한 회전 내에서 하나의 변수가 여러 번 변화하는 경우 특정 변수의 행만 길어지는 경우도 존재합니다.
즉, 해당 문제에서 hap이 7이 되는 경우는 i가 7이 되었을 때이며, 11이 되는 경우는 i가 4가 되었을 때, 12가 되는 경우는 i가 1이 되었을 때 입니다.
간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.
행복한 하루되세요.^^
-
*2018-09-17 16:27:17
안녕하세요. 길벗 수험서 운영팀입니다.
일반적인 디버깅표는 변수가 변하는 값을 순서대로 적어서 기록합니다.
단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 반복문의 한 회전 내에서 하나의 변수가 여러 번 변화하는 경우 특정 변수의 행만 길어지는 경우도 존재합니다.
즉, 해당 문제에서 hap이 7이 되는 경우는 i가 7이 되었을 때이며, 11이 되는 경우는 i가 4가 되었을 때, 12가 되는 경우는 i가 1이 되었을 때 입니다.
간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.
행복한 하루되세요.^^