프로그램을 실행시키면 for문에서 i=1가 초기값이어서 hap+=i 이 실행되어서 처음 i와 hap값이 i=1 hap=1이 아니고 왜 hap이 0인지 궁금합니다.
또 가운데 식2인 i++, ++i 두 가지 조건 경우에 따라서 때에 따라 어떻게 구해야하는지도 궁금합니다.
안녕하세요 길벗수험서 운영팀입니다.
..125페이지의 34번과
121페이지의 25번 중 어떤 것을 물어보시는지 정확히 알 수 없습니다.
질문의 의도로 보아 34번 문제를 물어보시는 것 같아 이에 답변드리겠습니다.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
입니다.
for(i = 1; i <= 5; ++i, hap += i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
위 코드에서 처음 출력되는 i, hap은 증가식인 ++i, hap += i가 수행되지 않고 출력되므로 초기값인 0이 찍히게 되는 것입니다.
또한 단일 식으로 쓰이는 ++i와 i++은 단순히 i = i + 1과 동일합니다.
++i와 i++가 구분되어 적용되는 경우는 교재 117쪽의 문제 13번과 같이 복합식 내에서 적용되는 경우입니다.
행복한 하루되세요 :)
-
관리자2019-03-25 14:17:54
안녕하세요 길벗수험서 운영팀입니다.
..125페이지의 34번과
121페이지의 25번 중 어떤 것을 물어보시는지 정확히 알 수 없습니다.
질문의 의도로 보아 34번 문제를 물어보시는 것 같아 이에 답변드리겠습니다.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
4회 : ③, ②(조건 거짓) <탈출>
입니다.
for(i = 1; i <= 5; ++i, hap += i)
System.out.printf("합은%d %4d입니다.\n", i, hap);
위 코드에서 처음 출력되는 i, hap은 증가식인 ++i, hap += i가 수행되지 않고 출력되므로 초기값인 0이 찍히게 되는 것입니다.
또한 단일 식으로 쓰이는 ++i와 i++은 단순히 i = i + 1과 동일합니다.
++i와 i++가 구분되어 적용되는 경우는 교재 117쪽의 문제 13번과 같이 복합식 내에서 적용되는 경우입니다.
행복한 하루되세요 :)