[Visual Basic]제어문과 반복문 - 3부






While 문

while문은 [조건]을 만족하는 동안만 문장을 반복합니다. DoLoop문과 달리 반복중에 중지할 수 없습니다.

형식

While 조건

문장1

문장2

.

.

.

Wend



Do Loop 문

Do Loop문의 While을 사용하면, [조건]을 만족하는 동안 문장을 반복하여 수행을 합니다. 또한, Until을 사용하면 [조건]과 같을 때 까지 반복을 합니다.


반복 중에 Exit Do를 이용하여 강제적으로 반복을 종료할 수 있습니다.

형식

① Do

문장1;

[Exit Do]

문장2;

.

.

Loop [{While | Until} 조건]




② Do [{While | Until} 조건]

문장1;

[Exit Do]

문장2;

.

.

Loop

Do .. Loop While



(True)인 동안은 문장을 반복하고 아니오(False)이면 Do .. Loop While문장 다음 문장을 수행합니다. [조건]을 나중에 확인하기 때문에 [조건]을 만족하지 않아도 [반목 문장]을 한번은 수행합니다.


Do While .. Loop


 

(True)인 동안은 문장을 반복하고 아니오(False)이면 Do While .. Loop 문장 다음 문장을 수행합니다. [조건]을 먼저 확인하기 때문에 [조건]을 만족하지 않으면, [반복문장]을 수행하지 않고 다음 문장을 수행합니다. 결국, [조건]에 만족하지 않으면 [반복 문장]을 한번도 수행하지 않습니다.


Private Sub Command1_Click()

Dim i As Integer

i = 0

Do While i < 0

Label1.Caption = "Do While .. Loop문 수행 했음"

Loop

Do

Label2.Caption = "Do .. Loop While문 수행 했음"

Loop While i < 0

End Sub


실행 결과 : Label1은 출력되지 않고 Label2는 'Do .. Loop While문 수행 했음'이라고 출력됩니다


 

Do .. Loop While문과 Do .. Loop Until문의 차이점


Private Sub Command1_Click()

Dim I As Integer

I = 0

Do

I = I + 1

Loop Until I = 50

Label2.Caption = I

I = 0

Do

I = I + 1

Loop While I < 50

Label1.Caption = I

End Sub

실행 결과 : Label1과 Label2는 동일한 값인 50이 출력됩니다.




Exit 문

Exit문은 반복문이나 프로시저 수행 중에 강제적으로 종료해야 할 경우에 사용합니다. 종류는 다음과 같습니다.


종 류

설 명

Exit Function

Function 프로시저를 종료합니다.

Exit For

For...NextFor Each...Next의 반복을 중지합니다. 중첩된 For문을 사용한 경우 안쪽 레벨의 For문을 Exit For로 중지하면 한 레벨 위인 For문을 수행합니다.

Exit Do

Do Loop 문 안에서 반복을 중지를 할 때 사용합니다. 중첩된 DoLoop문을 사용하는 경우 안쪽 레벨의 Loop문을 Exit Do로 중지하면 한 레벨 위인 Do Loop문을 수행합니다.

Exit Property

Property 프로시저를 종료합니다.

Exit Sub

Sub 프로시저를 종료합니다.



Private Sub Command1_Click()

프로시저를 종료한다.

Exit Sub

Label1.Caption = "비주얼 베이직"

End Sub

실행 결과 : Label1에 값이 들어 있지 않습니다그 이유는 Exit Sub문으로 Sub 프로시저를 종료하였기 때문입니다.


Private Sub Command1_Click()

Dim i, j As Integer

For i = 1 To 100

For j = 1 To 50

If j = 30 Then Exit For

Next j

Next i

Label1.Caption = i

Label2.Caption = j

End Sub


실행 결과 : Label1은 '101'이 출력되고 Label2는 '30'이 출력됩니다. Label2에 '30'이 출력되는 이유는 j가 30 값일 때 Exit For로 For문을 중지하였기 때문입니다. Exit For는 현재 반복 중인 For문만을 벗어 납니다.






Reactions

댓글 쓰기

0 댓글