문제 34번
int i = 0, hap = 0
for(i = 1 : i<= 5 : ++i, hap += i)
System.out.printf("합은%d %4d입니다.\", i, hap):
디버깅
i hap 반복횟수
0 0
1 0 1
2 2 2
3 5 3
.
.
출력
합은1 0입니다. for문 집입시 초기값i 1이 조건을 만족하지 않으므로 i를 바로 1증가시켜 2를 hap에 누적하고
합은2 2입니다. 출력하는데 출력은 1부터 합니다. 이해가 되질 않습니다.
.
.
.
안녕하세요 길벗수험서 운영팀입니다.
for문에 대해 다시 한 번 학습해보시길 권합니다.
for(i = 1; i <= 5; ++i, hap += i) 에서 i=1은 조건이 아닌 초기값을 부여하는 식입니다.
1. for문에 들어오게 되면 i는 무조건 1을 부여받습니다.
2. i<=5 조건식을 판단합니다. i는 1이므로 참입니다.
3. 출력 1, 0
4. ++i, hap+=i를 수행합니다. i=2, hap=2
5. i<=5 조건식을 판단합니다. i는 2이므로 참입니다.
5. 출력 2, 2
6. ++i, hap+=i를 수행합니다. i=3, hap=5
.,
,
,
n. 출력 5, 14
n+1. ++i, hap+=i를 수행합니다. i=6, hap=20
n+2. i<=5 조건식을 판단합니다. i는 6이므로 거짓입니다.
종료
행복한 하루되세요 :)
-
관리자2019-03-05 13:45:34
안녕하세요 길벗수험서 운영팀입니다.
for문에 대해 다시 한 번 학습해보시길 권합니다.
for(i = 1; i <= 5; ++i, hap += i) 에서 i=1은 조건이 아닌 초기값을 부여하는 식입니다.
1. for문에 들어오게 되면 i는 무조건 1을 부여받습니다.
2. i<=5 조건식을 판단합니다. i는 1이므로 참입니다.
3. 출력 1, 0
4. ++i, hap+=i를 수행합니다. i=2, hap=2
5. i<=5 조건식을 판단합니다. i는 2이므로 참입니다.
5. 출력 2, 2
6. ++i, hap+=i를 수행합니다. i=3, hap=5
.,
,
,
n. 출력 5, 14
n+1. ++i, hap+=i를 수행합니다. i=6, hap=20
n+2. i<=5 조건식을 판단합니다. i는 6이므로 거짓입니다.
종료
행복한 하루되세요 :)