for(식1;식2;식3;) 이렇게 있으면 식3에 ,가 두개가 붙어있으면 식3을 먼저 수행하고 식2를 수행하는거자나요.
즉, ++i , hap += i 인데요.
i를 1증가 시키고 hap에다가 hap = hap + i 를 하는데 왜 첫번째 디버깅을 할때 hap이 1이아닌 0이 나오는거죠??
번외로, 식1에잇는 i = 1 같은경우는 어떨때 쓰나요?
안녕하세요 길벗수험서 운영팀입니다.
일반적으로 디버깅표를 작성하는 것은 단순한 변수값 변화의 나열에 지나지 않습니다.
다만 순서도마다 조금 달라질 수 있는 것은 이해를 돕기 위해 순서도나 코드 내의 반복문이 있다면 해당 반복문의 회전수에 맞춰서 열을 맞춰준다거나 하는 것이 있겠죠.
또한 변수에 값을 치환하는 프로세스가 존재하는 경우 이를 적는 경우도 적지 않게 있을 수 있습니다.
이를 고려해서 디버깅표를 대조해보세요.
초기값으로 i, hap은 0을 갖습니다.
for문으로 진입시 식1, 식2만을 탐색합니다.
즉, i에 1이 저장되고, i<=5 조건이 참인 것 만을 확인한 후 출력문을 수행하므로
i=1, hap=0이 출력됩니다.
이 다음부터 for문에서는 식3, 식2를 탐색합니다.
i는 2가 되고, hap은 이 때 처음 i를 더해 2가 됩니다.
for문의 작동 순서를 정확히 파악해두세요.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
입니다.
행복한 하루되세요 :)
-
관리자2019-09-16 10:55:47
안녕하세요 길벗수험서 운영팀입니다.
일반적으로 디버깅표를 작성하는 것은 단순한 변수값 변화의 나열에 지나지 않습니다.
다만 순서도마다 조금 달라질 수 있는 것은 이해를 돕기 위해 순서도나 코드 내의 반복문이 있다면 해당 반복문의 회전수에 맞춰서 열을 맞춰준다거나 하는 것이 있겠죠.
또한 변수에 값을 치환하는 프로세스가 존재하는 경우 이를 적는 경우도 적지 않게 있을 수 있습니다.
이를 고려해서 디버깅표를 대조해보세요.
초기값으로 i, hap은 0을 갖습니다.
for문으로 진입시 식1, 식2만을 탐색합니다.
즉, i에 1이 저장되고, i<=5 조건이 참인 것 만을 확인한 후 출력문을 수행하므로
i=1, hap=0이 출력됩니다.
이 다음부터 for문에서는 식3, 식2를 탐색합니다.
i는 2가 되고, hap은 이 때 처음 i를 더해 2가 됩니다.
for문의 작동 순서를 정확히 파악해두세요.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④
2회 : ③, ②(조건 참), ④
3회 : ③, ②(조건 참), ④
종료 : ③, ②(조건 거짓) <탈출>
입니다.
행복한 하루되세요 :)