해당 구문을 실행할때 k가 3일때까지 출력되는것은 이해되었습니다.
근데 3을 출력하고 나서 if(k<7) k++;를 수행하면 k=4가 되잖아요?
그리고 다시 while문의 처음으로 이동하면 j=2로 설정이 되고 while(k%j !=0)의 구문을 통해 4%2==0이므로 while문 안의 조건은 거짓이 되어 j는 증가하지 않게되고요
그런데 k가5일때는 while문 안의 조건이 만족하여 j가 1 증가하게 되면 결국 if (k==j)이 조건에 다다랐을때 k=5, j=3으로 서로 다르니까 k를 출력 안해야되는거 아닌가요?
어째서 5를 출력하는지 모르겠습니다
안녕하세요 길벗수험서 운영팀입니다.
(해설 번호 기준)
k가 5가 되었을 때,
j는 2번에서 다시 2가 되고,
2부터 1씩 증가하면서 5를 나눴을 때 나머지가 0이 되는 값을 찾습니다.
3번에서 j가 3이 되었을 때라면, 5%3의 경우 나머지가 2이므로 0과 같지 않아 다시 j값을 증가시킬 것이고,
5%4 = 1
5%5 = 0 <- 여기서나 k%j의 값이 0이 나와 빠져나가게 되고 5번에서 k과 j의 값은 같으므로 6번에서 출력되게 되죠.
행복한 하루되세요 :)
-
관리자2020-10-12 11:43:27
안녕하세요 길벗수험서 운영팀입니다.
(해설 번호 기준)
k가 5가 되었을 때,
j는 2번에서 다시 2가 되고,
2부터 1씩 증가하면서 5를 나눴을 때 나머지가 0이 되는 값을 찾습니다.
3번에서 j가 3이 되었을 때라면, 5%3의 경우 나머지가 2이므로 0과 같지 않아 다시 j값을 증가시킬 것이고,
5%4 = 1
5%5 = 0 <- 여기서나 k%j의 값이 0이 나와 빠져나가게 되고 5번에서 k과 j의 값은 같으므로 6번에서 출력되게 되죠.
행복한 하루되세요 :)