i가 1일때,
++i와 hap을 동시에 계산해야하는거아닌가요?
왜 i가 1일때, hap이 0 되는지...
i를 6까지 해야하는거아닌가요??
안녕하세요 길벗수험서 운영팀입니다.
for(i=1; i<=5; ++i, hap+=i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
위의 코드를 아래로 단순화 시켜 보죠.
for(①; ②; ③)
④;
해당 문제에서 내부의 출력문은 i가 1일 때부터, 5일 때까지 총 5회 수행됩니다.
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 참), ④
5회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
처음 수행될 시 증가값에 해당하는 부분(++i, hap+=i)은 수행되지 않으므로 hap은 초기값인 0인 상태 그대로 출력됩니다.
'합은 1 0입니다.'
-
관리자2022-08-31 09:26:47
안녕하세요 길벗수험서 운영팀입니다.
for(i=1; i<=5; ++i, hap+=i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
위의 코드를 아래로 단순화 시켜 보죠.
for(①; ②; ③)
④;
해당 문제에서 내부의 출력문은 i가 1일 때부터, 5일 때까지 총 5회 수행됩니다.
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 참), ④
5회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
처음 수행될 시 증가값에 해당하는 부분(++i, hap+=i)은 수행되지 않으므로 hap은 초기값인 0인 상태 그대로 출력됩니다.
'합은 1 0입니다.'
마지막에 종료될 때 ③번(코드에서는 ++i, hap+=i)을 수행하여 i가 6이 되었을 때, 조건이 거짓이 되며 출력문(④)을 수행하지 않고 for문을 벗어납니다. 이로 인해 i가 6인 시점은 출력없이 종료되게 됩니다.행복한 하루되세요 :)