시나공2012 컴활1급 필기에서 섹션100 기출문제 2번 질문이에요.
2. 다음 보기 프로그램이 수행되었을때 sum의 값으로 옳은것은?
I = 0
Sum = 0
Do
I = I + 1
Sum = Sum + I
If I = 7 Then
Exit Do
End If
Loop Until I >= 10
답은 28 이라고 하는데 밑의 해설을 보고도 잘 이해가 가지 않아서요.
좀 쉽게 하나하나 설명 해주실수 있나요~
왜 28이 나오는지 모르겠어요~
안녕하세요.
Do ~ Loop Until 명령은 Loop Until의 조건을 만족하지 않을 때까지 수행합니다.
Do
I = I + 1
Sum = Sum + I
If I = 7 Then
Exit Do
End If
Loop Until I >= 10
조건은 I가 10보다 크거나 같다 입니다.
1번 수행
I와 Sum은 초기값으로 0을 갖습니다.
I는 I+1에 의해 1이 됩니다.
Sum은 Sum+I에 의해 1이 됩니다.
I가 1이므로 IF 조건문은 False가 되어 수행하지 않습니다.
Loop를 만나 I가 10보다 작으므로 다시 Do를 실행합니다.
즉 1번 수행했을 때 I는 1, SUM은 1입니다.
2번 수행
I는 I+1에 의해 2이 됩니다.
Sum은 Sum+I에 의해 3이 됩니다.
I가 2이므로 IF 조건문은 False가 되어 수행하지 않습니다.
Loop를 만나 I가 10보다 작으므로 다시 Do를 실행합니다.
즉 2번 수행했을 때 I는 2, Sum은 3이 됩니다.
이 과정을 지속하다 I가 7이 되는 경우 즉 7번째 수행하는 경우 ..
I는 I+1에 의해 7이 됩니다.
Sum은 Sum+I에 의해 28이 됩니다.
I가 7이므로 IF 조건문은 True가 되어 Exit Do, 즉 Do 반복을 탈출하는 명령을 수행합니다.
결국 I는 7, Sum은 28인 상태로 종료가 되는 것입니다.
오늘도 즐거운 하루 되세요.
-
*2012-04-05 09:42:10
안녕하세요.
Do ~ Loop Until 명령은 Loop Until의 조건을 만족하지 않을 때까지 수행합니다.
Do
I = I + 1
Sum = Sum + I
If I = 7 Then
Exit Do
End If
Loop Until I >= 10조건은 I가 10보다 크거나 같다 입니다.
1번 수행
I와 Sum은 초기값으로 0을 갖습니다.
I는 I+1에 의해 1이 됩니다.
Sum은 Sum+I에 의해 1이 됩니다.
I가 1이므로 IF 조건문은 False가 되어 수행하지 않습니다.
Loop를 만나 I가 10보다 작으므로 다시 Do를 실행합니다.
즉 1번 수행했을 때 I는 1, SUM은 1입니다.
2번 수행
I는 I+1에 의해 2이 됩니다.
Sum은 Sum+I에 의해 3이 됩니다.
I가 2이므로 IF 조건문은 False가 되어 수행하지 않습니다.
Loop를 만나 I가 10보다 작으므로 다시 Do를 실행합니다.
즉 2번 수행했을 때 I는 2, Sum은 3이 됩니다.
이 과정을 지속하다 I가 7이 되는 경우 즉 7번째 수행하는 경우 ..
I는 I+1에 의해 7이 됩니다.
Sum은 Sum+I에 의해 28이 됩니다.
I가 7이므로 IF 조건문은 True가 되어 Exit Do, 즉 Do 반복을 탈출하는 명령을 수행합니다.
결국 I는 7, Sum은 28인 상태로 종료가 되는 것입니다.
오늘도 즐거운 하루 되세요.