지정된 조건이 True있는 한 일련의 문을 실행합니다.
문법
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
부분
| 기간 | 정의 |
|---|---|
condition |
필수 사항입니다.
Boolean 표현. 이 경우 condition Visual Basic은 Nothing이를 .로 False처리합니다. |
statements |
선택 사항입니다. 다음에 While하나 이상의 문이 있으며, 매번 conditionTrue실행됩니다. |
Continue While |
선택 사항입니다. 컨트롤을 블록의 다음 반복으로 전송합니다 While . |
Exit While |
선택 사항입니다. 블록 밖으로 제어를 전송합니다 While . |
End While |
필수 사항입니다. 블록의 정의를 종료합니다 While . |
비고
조건이 남아 True있는 While...End While 한 문 집합을 무기한 횟수만큼 반복하려는 경우 구조를 사용합니다. 조건을 테스트하는 위치 또는 테스트 결과를 더 유연하게 사용하려면 Do...를 사용하는 것이 좋습니다 . Loop 문입니다. 정해진 횟수만큼 문을 반복하려면 For... 다음 문 은 일반적으로 더 나은 선택입니다.
비고
이 While 키워드는 Do...에도 사용됩니다. Loop 문, Skip While 절 및 Take While 절입니다.
이 True경우 condition 문이 발견될 때까지 End While 모든 statements 실행을 실행합니다. 그런 다음 Control이 문 condition 으로 While 돌아와서 다시 확인됩니다. 여전히 True있는 경우 condition 프로세스가 반복됩니다.
False이 경우 컨트롤이 문 뒤에 있는 문으로 End While 전달됩니다.
이 문은 While 루프를 시작하기 전에 항상 조건을 확인합니다. 조건이 남아 True있는 동안 반복이 계속됩니다. 루프를 False 처음 입력하는 경우 condition 한 번도 실행되지 않습니다.
condition 일반적으로 두 값을 비교한 결과이지만 부울 데이터 형식 값(True또는False)으로 계산되는 식일 수 있습니다. 이 식에는 변환 Boolean된 숫자 형식과 같은 다른 데이터 형식의 값이 포함될 수 있습니다.
하나의 루프를 다른 루프 내에 배치하여 루프를 중첩 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
다음 예제에서는 변수가 10보다 클 때까지 루프의 index 문이 계속 실행됩니다.
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