int i=1, hap=0;
while(i<=6){
hap+=i;
i+=2;
}
i의 초기값이 1이여서 i가 1일 때 hap이 0이고 다음에 i=3일 때 왜 hap의 값이 왜 1이 되나요?
안녕하세요. 길벗 수험서 운영팀입니다.
hap에 i가 먼저 더해진 후, i 값에 2가 더해지기 때문입니다.
변수의 값이 변경되는 코드를 차례대로 설명해보면
① 초기값 i는 1, hap에는 0이 저장됩니다. → int i=1, hap=0
② hap에 i가 더해져 hap은 1이 됩니다. → hap+=i
③ i에 2가 더해져 i는 3이 됩니다. → i+=2
위와 같은 순서대로 디버깅표에 적었을 때 정답과 같은 디버깅표가 나옵니다.
일반적인 디버깅표는 변수가 변하는 값을 순서대로 적어서 기록합니다.
단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 반복문의 한 회전 내에서 하나의 변수가 여러 번 변화하는 경우 특정 변수의 행만 길어지는 경우도 존재합니다.
간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.
행복한 하루되세요.^^
-
*2018-09-14 14:55:26
안녕하세요. 길벗 수험서 운영팀입니다.
hap에 i가 먼저 더해진 후, i 값에 2가 더해지기 때문입니다.
변수의 값이 변경되는 코드를 차례대로 설명해보면
① 초기값 i는 1, hap에는 0이 저장됩니다. → int i=1, hap=0
② hap에 i가 더해져 hap은 1이 됩니다. → hap+=i
③ i에 2가 더해져 i는 3이 됩니다. → i+=2
위와 같은 순서대로 디버깅표에 적었을 때 정답과 같은 디버깅표가 나옵니다.
일반적인 디버깅표는 변수가 변하는 값을 순서대로 적어서 기록합니다.
단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 반복문의 한 회전 내에서 하나의 변수가 여러 번 변화하는 경우 특정 변수의 행만 길어지는 경우도 존재합니다.
간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.
행복한 하루되세요.^^