int a , hap=0;
for(a = 0; a <10; ++a, hap +=a);
이거 a와 hap을 출력하는 문제입니다.
풀이에는 ++a후 hap+=a 를 순차적으로 하라고했는데
a가 9일때 ++a해주면 a10이 되고 hap은 45가 되는데 왜 a<10인데 hap에 10을 더해주는지 잘 이해가 되지않습니다..
글을 잘 못써서 이해하실지는 모르겟지만.. 뭐랄까.. for문 내에서의 순서? 정확하게 이해하고 싶은데 쉽지가 않네요..
안녕하세요 길벗 수험서 운영팀입니다.
일반적인 for문의 프로세스는 아래와 같습니다.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
그럼 이제 해당 문제에 적용해 보겠습니다. 해당 문제를 위와 같은 방식으로 쓰자면
for(①; ②; ③, ⑤) {
④;
}
이렇게 ③에 ⑤가 추가된 형식입니다. 적용하게 되면 ③ 뒤에 바로 ⑤를 추가해 주면 됩니다.
1회(a=0) : ①, ②(조건 참), ④
2회(a=1) : ③, ⑤, ②(조건 참), ④
3회(a=2) : ③, ⑤, ②(조건 참), ④
4회(a=3) : ③, ⑤, ②(조건 참), ④
5회(a=4) : ③, ⑤, ②(조건 참), ④
6회(a=5) : ③, ⑤, ②(조건 참), ④
7회(a=6) : ③, ⑤, ②(조건 참), ④
8회(a=7) : ③, ⑤, ②(조건 참), ④
9회(a=8) : ③, ⑤, ②(조건 참), ④
10회(a=9) : ③, ⑤, ②(조건 참), ④
11회(a=10) : ③, ⑤, ②(조건 거짓) <탈출>
위와 같이 거짓이 되는 11회차의 경우에도 ③(문제에서의 ++a)이 수행됨과 동시에 ⑤(hap+=a) 또한 수행되면서 마지막 10(변수 a)까지 더해주는 것입니다.
행복한 하루 되세요 :)
-
관리자2018-12-05 10:05:07
안녕하세요 길벗 수험서 운영팀입니다.
일반적인 for문의 프로세스는 아래와 같습니다.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
그럼 이제 해당 문제에 적용해 보겠습니다. 해당 문제를 위와 같은 방식으로 쓰자면
for(①; ②; ③, ⑤) {
④;
}
이렇게 ③에 ⑤가 추가된 형식입니다. 적용하게 되면 ③ 뒤에 바로 ⑤를 추가해 주면 됩니다.
1회(a=0) : ①, ②(조건 참), ④
2회(a=1) : ③, ⑤, ②(조건 참), ④
3회(a=2) : ③, ⑤, ②(조건 참), ④
4회(a=3) : ③, ⑤, ②(조건 참), ④
5회(a=4) : ③, ⑤, ②(조건 참), ④
6회(a=5) : ③, ⑤, ②(조건 참), ④
7회(a=6) : ③, ⑤, ②(조건 참), ④
8회(a=7) : ③, ⑤, ②(조건 참), ④
9회(a=8) : ③, ⑤, ②(조건 참), ④
10회(a=9) : ③, ⑤, ②(조건 참), ④
11회(a=10) : ③, ⑤, ②(조건 거짓) <탈출>
위와 같이 거짓이 되는 11회차의 경우에도 ③(문제에서의 ++a)이 수행됨과 동시에 ⑤(hap+=a) 또한 수행되면서 마지막 10(변수 a)까지 더해주는 것입니다.
행복한 하루 되세요 :)