문제
다음 중 1부터 10까지의 합을 구하는 VBA 모듈로 옳지 않은 것은?
① ```vb no = 0 sum = 0 Do While no <= 10 sum = sum + no no = no + 1 Loop MsgBox sum
③ ```vb no = 0 sum = 0 Do While no < 10 sum = sum + no no = no + 1 Loop MsgBox sum
정답
3번
해설
정답: 3. 보기 3은 조건이 no < 10이므로 no가 0부터 9까지만 더해진다. 즉 0+1+...+9 = 45가 되어 1부터 10까지의 합 55를 구하지 못하므로 옳지 않다.
오답 풀이
- 1번:
no <= 10이므로 0~10까지 더해 합 55를 구하므로 옳다. - 2번: Do...Loop While로 no가 10이 될 때까지 더해 합 55를 구하므로 옳다.
- 3번:
no < 10이라 9까지만 더해 45가 되므로 옳지 않아 정답이다. - 4번: For no = 1 To 10으로 1~10을 더해 55를 구하므로 옳다.
보충 개념 Do While은 조건이 참인 동안 반복하고, Do...Loop While은 본문을 한 번 실행한 뒤 조건을 검사한다. 경계 조건(< vs <=)에 따라 마지막 값 포함 여부가 달라진다.