While...End While 문(Visual Basic)While...End While Statement (Visual Basic)

지정 된 조건이 True된 경우 일련의 문을 실행 합니다.Runs a series of statements as long as a given condition is True.


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


용어Term 정의Definition
condition 필수입니다.Required. Boolean 식입니다.Boolean expression. condition Nothing경우 Visual Basic는이를 False로 처리 합니다.If condition is Nothing, Visual Basic treats it as False.
statements (선택 사항)Optional. While다음에 오는 하나 이상의 문 condition True때마다 실행 됩니다.One or more statements following While, which run every time condition is True.
Continue While (선택 사항)Optional. While 블록의 다음 반복으로 제어를 전달 합니다.Transfers control to the next iteration of the While block.
Exit While (선택 사항)Optional. While 블록 밖으로 제어를 전송 합니다.Transfers control out of the While block.
End While 필수입니다.Required. While 블록의 정의를 종료합니다.Terminates the definition of the While block.


조건이 True상태로 유지 되는 한 문 집합을 무한 횟수로 반복 하려는 경우 While...End While 구조를 사용 합니다.Use a While...End While structure when you want to repeat a set of statements an indefinite number of times, as long as a condition remains True. 조건을 테스트 하는 위치 또는 테스트 결과를 보다 유연 하 게 하려는 경우 다음을 수행 하는 것이 좋습니다. Loop 문.If you want more flexibility with where you test the condition or what result you test it for, you might prefer the Do...Loop Statement. 이 문을 설정 된 횟수 만큼 반복 하려면 For ... 다음 문을 일반적으로 선택 하는 것이 좋습니다.If you want to repeat the statements a set number of times, the For...Next Statement is usually a better choice.


While 키워드는 다음에도 사용 됩니다 . Loop 문, Skip while 절Take while 절The While keyword is also used in the Do...Loop Statement, the Skip While Clause and the Take While Clause.

condition True되는 경우 End While 문이 발생할 때까지 모든 statements 실행 됩니다.If condition is True, all of the statements run until the End While statement is encountered. 그러면 컨트롤이 While 문으로 반환 되 고 condition가 다시 선택 됩니다.Control then returns to the While statement, and condition is again checked. condition 아직 True되 면 프로세스가 반복 됩니다.If condition is still True, the process is repeated. False경우 End While 문 다음에 오는 문으로 제어가 전달 됩니다.If it’s False, control passes to the statement that follows the End While statement.

While 문은 루프를 시작 하기 전에 항상 조건을 확인 합니다.The While statement always checks the condition before it starts the loop. 조건이 True상태로 유지 되는 동안 반복이 계속 됩니다.Looping continues while the condition remains True. 루프를 처음 입력할 때 condition False 경우 한 번도 실행 되지 않습니다.If condition is False when you first enter the loop, it doesn’t run even once.

condition은 일반적으로 두 값을 비교 하 여 발생 하지만 부울 데이터 형식 값 (True 또는 False)으로 계산 되는 모든 식일 수 있습니다.The condition usually results from a comparison of two values, but it can be any expression that evaluates to a Boolean Data Type value (True or False). 이 식에는 Boolean로 변환 된 숫자 형식과 같은 다른 데이터 형식의 값이 포함 될 수 있습니다.This expression can include a value of another data type, such as a numeric type, that has been converted to Boolean.

루프 하나를 다른 루프에 배치 하 여 While 루프를 중첩할 수 있습니다.You can nest While loops by placing one loop within another. 서로 다른 종류의 제어 구조를 중첩할 수도 있습니다.You can also nest different kinds of control structures within one another. 자세한 내용은 중첩 컨트롤 구조를 참조 하세요.For more information, see Nested Control Structures.

종료 중Exit While

Exit While 문은 While 루프를 종료 하는 다른 방법을 제공할 수 있습니다.The Exit While statement can provide another way to exit a While loop. Exit WhileEnd While 문 다음에 오는 문으로 제어를 즉시 전송 합니다.Exit While immediately transfers control to the statement that follows the End While statement.

일반적으로 일부 조건을 평가한 후에 Exit While를 사용 합니다 (예: If...Then...Else 구조체).You typically use Exit While after some condition is evaluated (for example, in an If...Then...Else structure). 오류가 발생 하거나 종료 요청 등의 반복을 계속할 수 없게 하는 조건을 감지 하는 경우 루프를 종료할 수 있습니다.You might want to exit a loop if you detect a condition that makes it unnecessary or impossible to continue iterating, such as an erroneous value or a termination request. 무한 루프를 발생 시킬 수 있는 조건에 대해 테스트 하는 경우 Exit While를 사용할 수 있습니다 .이 루프는 매우 크거나 무한 한 횟수를 실행할 수 있습니다.You can use Exit While when you test for a condition that could cause an endless loop, which is a loop that could run an extremely large or even infinite number of times. 그런 다음 Exit While를 사용 하 여 루프를 이스케이프할 수 있습니다.You can then use Exit While to escape the loop.

While 루프의 어디에 든 원하는 수의 Exit While 문을 넣을 수 있습니다.You can place any number of Exit While statements anywhere in the While loop.

중첩 된 While 루프 내에서 사용 하는 경우 Exit While는 가장 안쪽의 루프와 그 다음으로 높은 중첩 수준으로 제어를 전송 합니다.When used within nested While loops, Exit While transfers control out of the innermost loop and into the next higher level of nesting.

Continue While 문은 즉시 루프의 다음 반복으로 제어를 전달 합니다.The Continue While statement immediately transfers control to the next iteration of the loop. 자세한 내용은 Continue 문을 참조 하세요.For more information, see Continue Statement.


다음 예에서는 index 변수가 10 보다 클 때까지 루프의 문이 계속 실행 됩니다.In the following example, the statements in the loop continue to run until the index variable is greater than 10.

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

' Output: 0 1 2 3 4 5 6 7 8 9 10 


다음 예에서는 Continue WhileExit While 문을 사용 하는 방법을 보여 줍니다.The following example illustrates the use of the Continue While and Exit While statements.

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

' Output: 1 2 3 4 9 10


다음 예에서는 텍스트 파일의 모든 줄을 읽습니다.The following example reads all lines in a text file. OpenText 메서드는 파일을 열고 문자를 읽는 StreamReader을 반환 합니다.The OpenText method opens the file and returns a StreamReader that reads the characters. While 조건에서 StreamReaderPeek 메서드는 파일에 추가 문자가 포함 되어 있는지 여부를 확인 합니다.In the While condition, the Peek method of the StreamReader determines whether the file contains additional characters.

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

        While sr.Peek() >= 0
        End While

    End If
End Sub

참고 항목See also