int=0,hap=0
for( i=1; i<=5; ++i, hap += i)
system.out.printf("합은 %d %4d입니다./n", i, hap):
에서 답이
합은1 0입니다
합은 2 2입니다
이런식으로 되어있는데 왜 합이 1은 0이에요
합은 0이고 i의 1을 더해서 1 인거아닌가요?
안녕하세요 길벗수험서 운영팀입니다.
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회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
1회에서 출력되는 print 문은
"합은 (i의값) (hap의값)입니다."
가 출력되어야 합니다. 이것이 ④번이죠.
④번으로 오기 전에 수행한 초기값(①)을 통해 i는 1이 되었고, hap은 아무것도 수행되지 않았습니다. (hap에 i값이 더해지려면 ③번이 수행되어야 합니다.)
때문에 "합은 1 0입니다."가 출력되게 됩니다.
행복한 하루되세요 :)
-
관리자2020-04-27 13:56:20
안녕하세요 길벗수험서 운영팀입니다.
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회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
1회에서 출력되는 print 문은
"합은 (i의값) (hap의값)입니다."
가 출력되어야 합니다. 이것이 ④번이죠.
④번으로 오기 전에 수행한 초기값(①)을 통해 i는 1이 되었고, hap은 아무것도 수행되지 않았습니다. (hap에 i값이 더해지려면 ③번이 수행되어야 합니다.)
때문에 "합은 1 0입니다."가 출력되게 됩니다.
행복한 하루되세요 :)