예제2번에서
IF i>3 Then
Exit Do
End if
위의 항목은 없어도 결과값은 똑같지 않나요?
해설을 보니 수식자체의 단편적인 의미는 알겠는데, 여기서 어떤 역할을 하는지 모르겠어요
그리고 해설 끝에도
"i가 3보다 크면 반복문을 빠져 나옵니다."
라고 되어 있는데, 3보다 클때 빠져나오면 S값이 4가 되어야 맞지 않나요?
저는 마지막 수식인 "Loop Until i>5"에 따라서
i가 5보다 크면 반복문이 끝나게 되고 그 때 S값이 11이 되는 것으로 이해했거든요.
안녕하세요.
if ~ end if 문이 없다면 'Loop Until i > 5' 이 조건으로 인해 i가 5보다 클때가지 실행을 합니다. 하지만 if문이 있기떄문에 i가 3보다 클때까지만 실행하고 do문을 끝냅니다.
i가 3일 때 3보다 크지 않으므로 i=i+1를 실행(i는 4가 됨)하고 다시 위로 올라가 s=s+i를 실행(s는 11이 됨)한 다음, if문을 다시 비교하게 됩니다. 이때 i는 4가 되어 3보다 크므로 if문을 종료하게 됩니다. 코드를 보면서 직접 do 문을 반복해서 실행해보세요. 이때 주의할 점은 s 값을 먼저 더한 다음 i값을 증가한다는 것입니다. 즉 s가 s의 초기값과 i의 초기값 1을 더해 2가 된 다음 if문을 비교 i가 3보다 크지 않으므로 아래로 내려와 i를 1증가시켜 2가 되고, 다시 위로 올라와 s에 i를 더하면 s값 2에 i 값 2값 더해 4가 된 다음 if문을 비교 i가 3보다 크지 않으므로 다시 아래로 내려와 i에 1을 더해 i는 3이되고, 다시 위로 올라가 s와 i를 더하면 7이 된 다음 if문을 비교 i가 3보다 크지 않으므로 다시 내려와 i를 1증가하면 i는 4가되고, 다시 위로 올라가 s와 i를 더하면 11이 된 다음 if문을 비교 i가 3보다 크므로 do문을 빠져나옵니다. 이 상태에서 i는 4, s는 11입니다.
즐거운 하루 되세요.
"-
*2012-10-26 09:37:56
안녕하세요.
if ~ end if 문이 없다면 'Loop Until i > 5' 이 조건으로 인해 i가 5보다 클때가지 실행을 합니다. 하지만 if문이 있기떄문에 i가 3보다 클때까지만 실행하고 do문을 끝냅니다.
i가 3일 때 3보다 크지 않으므로 i=i+1를 실행(i는 4가 됨)하고 다시 위로 올라가 s=s+i를 실행(s는 11이 됨)한 다음, if문을 다시 비교하게 됩니다. 이때 i는 4가 되어 3보다 크므로 if문을 종료하게 됩니다. 코드를 보면서 직접 do 문을 반복해서 실행해보세요. 이때 주의할 점은 s 값을 먼저 더한 다음 i값을 증가한다는 것입니다. 즉 s가 s의 초기값과 i의 초기값 1을 더해 2가 된 다음 if문을 비교 i가 3보다 크지 않으므로 아래로 내려와 i를 1증가시켜 2가 되고, 다시 위로 올라와 s에 i를 더하면 s값 2에 i 값 2값 더해 4가 된 다음 if문을 비교 i가 3보다 크지 않으므로 다시 아래로 내려와 i에 1을 더해 i는 3이되고, 다시 위로 올라가 s와 i를 더하면 7이 된 다음 if문을 비교 i가 3보다 크지 않으므로 다시 내려와 i를 1증가하면 i는 4가되고, 다시 위로 올라가 s와 i를 더하면 11이 된 다음 if문을 비교 i가 3보다 크므로 do문을 빠져나옵니다. 이 상태에서 i는 4, s는 11입니다.
즐거운 하루 되세요.
"