While...End While 문(Visual Basic)
지정한 조건이 True
인 동안 일련의 문을 실행합니다.
구문
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
부분
용어 | 정의 |
---|---|
condition |
필수입니다. Boolean 식입니다. Nothing 이 condition 이면 Visual Basic은 이를 False 로 처리합니다. |
statements |
선택 사항. condition 이 True 일 때마다 실행되는 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 절에서도 사용됩니다.
condition
이 True
인 경우 End While
문이 발생할 때까지 모든 statements
가 실행됩니다. 그런 다음 컨트롤이 While
문으로 돌아오고 condition
이 다시 확인됩니다. condition
여전히 True
인 경우 프로세스가 반복됩니다. False
이면 컨트롤은 End While
문 뒤에 오는 문으로 전달됩니다.
While
문은 반복을 시작하기 전에 항상 조건을 확인합니다. 조건이 True
로 유지되는 동안 반복이 계속됩니다. 반복에 처음 들어가는 경우 condition
이 False
이면 한 번도 실행되지 않습니다.
condition
은 일반적으로 두 값을 비교한 결과이지만 부울 데이터 형식 값(True
또는 False
)으로 평가되는 모든 식일 수 있습니다. 이 식에는 Boolean
으로 변환된 숫자 형식과 같은 다른 데이터 형식의 값이 포함될 수 있습니다.
하나의 반복을 다른 반복 내에 배치하여 While
반복을 중첩할 수 있습니다. 서로 다른 종류의 컨트롤 구조를 중첩할 수도 있습니다. 자세한 내용은 중첩된 컨트롤 구조를 참조하세요.
Exit While
Exit While 문은 While
반복에서 나가는 다른 방법을 제공할 수 있습니다. Exit While
은 End 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 While
및 Exit 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
조건에서 StreamReader
의 Peek 메서드는 파일에 추가 문자가 포함되어 있는지 여부를 결정합니다.
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
참고 항목
.NET