안녕하세요 길벗수험서 운영팀입니다.
코드 문제의 경우 어떤 부분에서 혼동이 오는지 정확하게 짚어주시기 않으면 자세한 안내가 불가능합니다.
73쪽 기준 1번 while문은 2~9번을 무한 반복하고,
3번 while문은 4번 코드만을 반복합니다.
5번 if문은 조건이 참이면 6번을 수행하고 아니면 7번으로 넘어가게 되죠.
7번 if문은 조건이 참이면 8번을 수행하고 아니면 9번으로 이동하여 1번 while문에서 탈출해 코드 끝으로 이동하여 프로그램을 종료시켜 버립니다.
해설에 각 조건과 조건의 참/거짓 여부에 따라 이동 경로를 적어놓았으니, 한줄 한줄 따라가며 각 값들의 변화를 74쪽의 디버깅 표처럼 직접 입력해보세요.
그러다가 디버깅표와 다른 부분이 있다면 그 부분을 짚어서 질문주시면 더 자세한 답변이 가능할 것 같습니다.
행복한 하루되세요 :)
-
관리자2022-04-12 11:12:30
안녕하세요 길벗수험서 운영팀입니다.
코드 문제의 경우 어떤 부분에서 혼동이 오는지 정확하게 짚어주시기 않으면 자세한 안내가 불가능합니다.
73쪽 기준 1번 while문은 2~9번을 무한 반복하고,
3번 while문은 4번 코드만을 반복합니다.
5번 if문은 조건이 참이면 6번을 수행하고 아니면 7번으로 넘어가게 되죠.
7번 if문은 조건이 참이면 8번을 수행하고 아니면 9번으로 이동하여 1번 while문에서 탈출해 코드 끝으로 이동하여 프로그램을 종료시켜 버립니다.
해설에 각 조건과 조건의 참/거짓 여부에 따라 이동 경로를 적어놓았으니, 한줄 한줄 따라가며 각 값들의 변화를 74쪽의 디버깅 표처럼 직접 입력해보세요.
그러다가 디버깅표와 다른 부분이 있다면 그 부분을 짚어서 질문주시면 더 자세한 답변이 가능할 것 같습니다.
행복한 하루되세요 :)
-
관리자2022-04-15 19:20:33
안녕하세요 길벗수험서 운영팀입니다.
번호는 각 코드들의 진행 순서일 뿐 개별 반복문의 반복까지 설명하고 있지는 않습니다.
1-2-3-4(조건에 따라 4번이 반복된 후)-5-6(조건에 따라 실행)-7-8(조건에 따라 실행)-9(조건에 따라 실행) x 반복
1~9번이 반복되는 와중에 3~4번이 별도로 반복되는 것입니다.
초기 수행부터 2회까지 수행하는 순서를 설명드리면 도움이 되지 않을까 싶네요.
1번 위의 코드를 0번이라고 가정하겠습니다.
0 int k=2, j; - k=2, j=?
1 while(1)
2 j=2; - k=2, j=2
3 while(k%j != 0) - k%j가 0이므로 4번이 수행되지 않습니다.
5 if(k==j) - k와 j가 같으므로 6번으로 이동
6 printf("%d ", k); - 화면에 k 값이 출력됩니다. '2 ' 출력
7 if(k<7) - k값이 7보다 작으므로 8번으로 이동
8 k++ - k=3, j=2
(1회 반복 종료, 다시 2번으로 이동)
2 j=2 - k=3, j=2
3 while(k%j != 0) - k%j는 1이므로 4번 수행
4 j++ - k=3, j=3
3 while(k%j != 0) - k%j는 0이므로 5번으로 이동
5 if(k==j) - k와 j가 같으므로 6번으로 이동
6 printf("%d ", k); - 화면에 k 값이 출력됩니다. '3 ' 출력 (지금까지의 출력 결과: '2 3 ')
7 if(k<7) - k값이 7보다 작으므로 8번으로 이동
8 k++ - k=4, j=3
(1회 반복 종료, 이와 같은 방식으로 k가 7이 되어 break; 문을 만나는 순간까지 반복됨)
행복한 하루되세요 :)
-
*2022-04-12 22:49:42
실행순서가 12345678 하고
다시 2번으로가서 j를 2로 초기화 하는건가요?
아니면 3번으로 가서 while문이 실행되는건가요?