교재 199쪽 문제9번
디버깅을 하고 맨마지막에
a는 4가되고 b는 0이되고
다시 a에 ++a해주는 순간 5가되잖아요 이때 더이상 b에 대한 b-=a안하고 디버깅 마지막이 a는 5, b는 0이되면 끝나는거 아닌가요?
왜 b도 계산(b-=a)을 해주는거죠?!
원리를 모르겠습니다..
안녕하세요 길벗수험서 운영팀입니다.
for문의 수행 순서를 알아두실 필요가 있습니다.
for문을 간략화 시키면 다음과 같습니다.
for(①; ②; ③)
④;
for문이 5회 반복한다고 가정할 때 다음과 같이 각 부분이 수행됩니다.
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 참), ④
5회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
이 과정을 9번 문제에 적용해보면, ④번이 사라지고, ③번이 두개로 늘어나겠네요.
1회 : ①, ②(조건 참)
2회 : ③-1 ③-2, ②(조건 참)
3회 : ③-1 ③-2, ②(조건 참)
4회 : ③-1 ③-2, ②(조건 참)
5회 : ③-1 ③-2, ②(조건 참)
종료 : ③-1 ③-2, ②(조건 거짓) <탈출>
위 방식대로 진행하게 되면 ③-1과 ③-2가 모두 수행한 후에 ②번을 만나 조건을 체크하게 되기 때문에 마지막까지 b의 값이 계산되는 것입니다.
행복한 하루되세요 :)
-
관리자2023-07-26 10:08:06
안녕하세요 길벗수험서 운영팀입니다.
for문의 수행 순서를 알아두실 필요가 있습니다.
for문을 간략화 시키면 다음과 같습니다.
for(①; ②; ③)
④;
for문이 5회 반복한다고 가정할 때 다음과 같이 각 부분이 수행됩니다.
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 참), ④
5회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
이 과정을 9번 문제에 적용해보면, ④번이 사라지고, ③번이 두개로 늘어나겠네요.
1회 : ①, ②(조건 참)
2회 : ③-1 ③-2, ②(조건 참)
3회 : ③-1 ③-2, ②(조건 참)
4회 : ③-1 ③-2, ②(조건 참)
5회 : ③-1 ③-2, ②(조건 참)
종료 : ③-1 ③-2, ②(조건 거짓) <탈출>
위 방식대로 진행하게 되면 ③-1과 ③-2가 모두 수행한 후에 ②번을 만나 조건을 체크하게 되기 때문에 마지막까지 b의 값이 계산되는 것입니다.
행복한 하루되세요 :)