문제 20번과 34번 질문입니다
두개가 코드 구성은 같은데
20번은 반복횟수 10번째의 값인 a=9 hap=45가 아닌 반복문을 탈출한 a=10 hap=55가 출력되었는데
왜 34번은 탈출한값 a=6 hap=20이 아닌 a=5 hap=14가 출력되었나요.?
그리고 12번과 20번은 어떤 차이가 있나요?
안녕하세요 길벗수험서 운영팀입니다.
for문의 각 식의 기본 순서를 기억해두세요.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
입니다.
20번의 경우 ④에 해당하는 실행할 코드가 존재하지 않고 ③에 해당하는 증가식에서 hap을 계산하게됩니다. 그리고 for문이 종료된 이후에 값을 출력하도록 하고 있죠. 위의 순서대로 코드를 진행하게 되면 최종적으로 hap은 1부터 9의 값이 아닌 1부터 10의 값을 저장하게 된 결과를 출력하게 됩니다.
반면 34번의 경우 ④에 해당하는 실행할 코드의 위치에 출력문이 존재합니다. 이 경우 i나 hap이 가지는 최종값이 아닌 i를 1~5까지만 수행한 값만을 출력하게 됩니다. 만약 동일한 결과를 만들고 싶다면 for문 외부에 출력문이 하나 더 존재해야 하죠. 이 때는 i를 1~6까지 수행한 결과가 나오게 되겠죠.
행복한 하루되세요 :)
-
관리자2019-10-10 10:38:44
안녕하세요 길벗수험서 운영팀입니다.
for문의 각 식의 기본 순서를 기억해두세요.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
입니다.
20번의 경우 ④에 해당하는 실행할 코드가 존재하지 않고 ③에 해당하는 증가식에서 hap을 계산하게됩니다. 그리고 for문이 종료된 이후에 값을 출력하도록 하고 있죠. 위의 순서대로 코드를 진행하게 되면 최종적으로 hap은 1부터 9의 값이 아닌 1부터 10의 값을 저장하게 된 결과를 출력하게 됩니다.
반면 34번의 경우 ④에 해당하는 실행할 코드의 위치에 출력문이 존재합니다. 이 경우 i나 hap이 가지는 최종값이 아닌 i를 1~5까지만 수행한 값만을 출력하게 됩니다. 만약 동일한 결과를 만들고 싶다면 for문 외부에 출력문이 하나 더 존재해야 하죠. 이 때는 i를 1~6까지 수행한 결과가 나오게 되겠죠.
행복한 하루되세요 :)