안녕하세요. 길벗 수험서 운영팀입니다.
해설에 수록된 디버깅 표는 각 변수의 값 변화가 있을 때마다 중간에 공백 없이 값을 기록한 것이므로 각 변수의 가로 위치를 서로 맞춰가며 이해하기 어렵습니다. 이는 실제 시험에서 시험지 하단의 좁은 공간을 이용해 디버깅을 해야 하는 것에 대비한 것입니다. 이점 염두에 두고 디버깅을 표를 확인하세요. (단 종종 반복문처럼 반복 변수를 기준으로 값 변화를 구분해서 이해해야 할 경우에는 반복 변수의 값 변화에 따라 가로 위치를 구분한 경우도 있으니 참고하세요.)
참고로 회원님이 문의하신 것처럼 각 변수의 가로 위치를 맞춰 디버깅을 수행하면 다음과 같습니다.
i |
hap |
출력 |
10 9 8 7 6 5 4 3 2 1 |
0
7
11
12 |
12 |
교재 475p 정답의 코드를 기준으로 설명 드리겠습니다.
1. i가 8이 되어 ①로 돌아왔을 때 while문의 조건이 참이므로 ③번을 수행합니다. (i=8-1)
2. ④번 if문의 조건(7%3==1)이 참이므로 ⑤번을 수행합니다. (hap=0+7)
3. 이후 i가 ③번을 수행한 값이 4 또는 1이 되었을 때(조건(i%3==1)이 참인 경우), ⑤번을 수행하여 ⑦번에서 출력되는 값은 7 + 4 + 1인 12가 됩니다.
행복한 하루되세요.^^
-
*2018-08-31 10:30:11
안녕하세요. 길벗 수험서 운영팀입니다.
해설에 수록된 디버깅 표는 각 변수의 값 변화가 있을 때마다 중간에 공백 없이 값을 기록한 것이므로 각 변수의 가로 위치를 서로 맞춰가며 이해하기 어렵습니다. 이는 실제 시험에서 시험지 하단의 좁은 공간을 이용해 디버깅을 해야 하는 것에 대비한 것입니다. 이점 염두에 두고 디버깅을 표를 확인하세요. (단 종종 반복문처럼 반복 변수를 기준으로 값 변화를 구분해서 이해해야 할 경우에는 반복 변수의 값 변화에 따라 가로 위치를 구분한 경우도 있으니 참고하세요.)
참고로 회원님이 문의하신 것처럼 각 변수의 가로 위치를 맞춰 디버깅을 수행하면 다음과 같습니다.
i
hap
출력
10
9
8
7
6
5
4
3
2
1
0
7
11
12
12
교재 475p 정답의 코드를 기준으로 설명 드리겠습니다.
1. i가 8이 되어 ①로 돌아왔을 때 while문의 조건이 참이므로 ③번을 수행합니다. (i=8-1)
2. ④번 if문의 조건(7%3==1)이 참이므로 ⑤번을 수행합니다. (hap=0+7)
3. 이후 i가 ③번을 수행한 값이 4 또는 1이 되었을 때(조건(i%3==1)이 참인 경우), ⑤번을 수행하여 ⑦번에서 출력되는 값은 7 + 4 + 1인 12가 됩니다.
행복한 하루되세요.^^