While...End While 문(Visual Basic)

지정한 조건이 True인 동안 일련의 문을 실행합니다.

구문

While condition
    [ statements ]
    [ Continue While ]
    [ statements ]
    [ Exit While ]
    [ statements ]
End While

부분

용어 정의
condition 필수입니다. Boolean 식입니다. Nothingcondition이면 Visual Basic은 이를 False로 처리합니다.
statements 선택 사항. conditionTrue일 때마다 실행되는 While 다음에 나오는 하나 이상의 문입니다.
Continue While 선택 사항. 컨트롤을 While 블록의 다음 반복으로 전송합니다.
Exit While 선택 사항. 컨트롤을 While 블록 밖으로 전송합니다.
End While 필수입니다. While 블록의 정의를 종료합니다.

설명

조건이 True로 남아 있는 한 문 집합을 무기한 반복하려는 경우 While...End While 구조를 사용합니다. 조건을 테스트하는 위치 또는 테스트 결과에 대해 더 많은 유연성을 원하는 경우 Do...Loop 문을 선호할 수 있습니다. 지정된 횟수만큼 문을 반복하려면 일반적으로 For...Next 문이 더 나은 선택입니다.

참고 항목

While 키워드는 Do...Loop 문, Skip While 절Take While 절에서도 사용됩니다.

conditionTrue인 경우 End While 문이 발생할 때까지 모든 statements가 실행됩니다. 그런 다음 컨트롤이 While 문으로 돌아오고 condition이 다시 확인됩니다. condition 여전히 True인 경우 프로세스가 반복됩니다. False이면 컨트롤은 End While 문 뒤에 오는 문으로 전달됩니다.

While 문은 반복을 시작하기 전에 항상 조건을 확인합니다. 조건이 True로 유지되는 동안 반복이 계속됩니다. 반복에 처음 들어가는 경우 conditionFalse이면 한 번도 실행되지 않습니다.

condition은 일반적으로 두 값을 비교한 결과이지만 부울 데이터 형식 값(True 또는 False)으로 평가되는 모든 식일 수 있습니다. 이 식에는 Boolean으로 변환된 숫자 형식과 같은 다른 데이터 형식의 값이 포함될 수 있습니다.

하나의 반복을 다른 반복 내에 배치하여 While 반복을 중첩할 수 있습니다. 서로 다른 종류의 컨트롤 구조를 중첩할 수도 있습니다. 자세한 내용은 중첩된 컨트롤 구조를 참조하세요.

Exit While

Exit While 문은 While 반복에서 나가는 다른 방법을 제공할 수 있습니다. Exit WhileEnd While 문 다음에 오는 문으로 제어를 즉시 전달합니다.

일반적으로 일부 조건이 평가된 후 Exit While을 사용합니다(예: If...Then...Else 구조체). 잘못된 값이나 종료 요청과 같이 반복을 계속할 필요가 없거나 불가능하게 만드는 조건을 감지하는 경우 반복에서 나갈 수 있습니다. 무한 반복(매우 많거나 심지어 무한 횟수로 실행될 수 있는 반복)을 유발할 수 있는 조건을 테스트할 때 Exit While을 사용할 수 있습니다. 그런 다음 반복에서 탈출하는 데 Exit While을 사용할 수 있습니다.

Exit While 반복의 어느 위치에나 While 문을 원하는 만큼 배치할 수 있습니다.

중첩된 While 반복 내에서 사용되는 경우 Exit While은 가장 안쪽 반복에서 다음 상위 수준의 중첩으로 컨트롤을 전송합니다.

Continue While 문은 반복의 다음 반복으로 컨트롤을 즉시 전송합니다. 자세한 내용은 Continue 문을 참조하세요.

예 1

다음 예제에서는 index 변수가 10보다 클 때까지 반복의 문이 계속 실행됩니다.

Dim index As Integer = 0
While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
End While

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

예제 2

다음 예제에서는 Continue WhileExit While 문을 사용하는 방법을 보여 줍니다.

Dim index As Integer = 0
While index < 100000
    index += 1

    ' If index is between 5 and 7, continue
    ' with the next iteration.
    If index >= 5 And index <= 8 Then
        Continue While
    End If

    ' Display the index.
    Debug.Write(index.ToString & " ")

    ' If index is 10, exit the loop.
    If index = 10 Then
        Exit While
    End If
End While

Debug.WriteLine("")
' Output: 1 2 3 4 9 10

예 3

다음 예제에서는 텍스트 파일의 모든 줄을 읽습니다. OpenText 메서드는 파일을 열고 문자를 읽는 StreamReader를 반환합니다. While 조건에서 StreamReaderPeek 메서드는 파일에 추가 문자가 포함되어 있는지 여부를 결정합니다.

Private Sub ShowText(ByVal textFilePath As String)
    If System.IO.File.Exists(textFilePath) = False Then
        Debug.WriteLine("File Not Found: " & textFilePath)
    Else
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)

        While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        End While

        sr.Close()
    End If
End Sub

참고 항목