for(i=1; i<=5; ++i; hap+=i) 이면 시작 값이 1아닌가요?
합이 합은 1 0입니다 로 나오는 이유를 모르겠어요.
i가 1이고 합에 i값이 누적되는데 어떻게 합이 0으로 나오나요??
안녕하세요 길벗수험서 운영팀입니다.
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입니다.'라는 문장이 출력되게 됩니다.
행복한 하루되세요 :)
-
관리자2021-10-11 14: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입니다.'라는 문장이 출력되게 됩니다.
행복한 하루되세요 :)