int a, hap=0;
for(a=0; a<10; ++a, hap+=a);
이 부분 해설을 보면 주의할 점으로
반복문을 벗어날 때 반복변수는 'a<10'의 결과가 거짓이 되도록 증가한 후 빠져나간다는 것이다. 여기서는 a가 10보다 작은 동안에는 반복문을 수행하고, a가 1 증가하여 10이 되었을 때, 'hap+=a'를 수행한 다음 반복문을 탈출한다는것이다.
이렇게 써있는데 그 전에 유사한 문제들을 보면은 i가 10이 되었을 때 그냥 벗어난다고 해설되어 있는데
왜 이 문제는 최종값을 넘어섰는데도 'hap+=a'를 수행하나요?
10이 되었더라도 최종값에 함께 식이 쓰여져있기 때문인가요? 헷갈립니당
안녕하세요.
for문의 형식은
for(초기값, 종료값, 증가값)
으로 구성되어 있는데, 증가값 부분에 콤마(,) 연산자에 의해 식이 2개가 나열되어 있습니다.
그러므로 두 식, 즉 ++a를 수행한 후 이어서 hap += a도 수행한 다음에 종료값을 비교하므로 a가 10인 상태로 hap += a도 수행된 후 종료값과 비교되므로 for문을 빠져나오게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-08-07 10:28:31
안녕하세요.
for문의 형식은
for(초기값, 종료값, 증가값)
으로 구성되어 있는데, 증가값 부분에 콤마(,) 연산자에 의해 식이 2개가 나열되어 있습니다.
그러므로 두 식, 즉 ++a를 수행한 후 이어서 hap += a도 수행한 다음에 종료값을 비교하므로 a가 10인 상태로 hap += a도 수행된 후 종료값과 비교되므로 for문을 빠져나오게 됩니다.
오늘도 즐거운 하루 되세요.