GoTo 문
프로시저에 지정된 줄로 무조건 분기합니다.
구문
GoTo line
요소
line
필수입니다. 모든 줄 레이블.
설명
GoTo
문은 해당 문이 나타나는 프로시저의 줄로만 분기할 수 있습니다. 줄에는 GoTo
가 참조할 수 있는 줄 레이블이 있어야 합니다. 자세한 내용은 방법: 레이블 문을 참조하세요.
참고 항목
GoTo
문은 코드를 읽고 유지하기 어렵게 만들 수 있습니다. 가능하다면 대신 제어 구조를 사용합니다. 자세한 내용은 제어 흐름을 참조하세요.
GoTo
문을 사용하여 For
...Next
, For Each
...Next
, SyncLock
...End SyncLock
, Try
...Catch
...Finally
, With
...End With
또는 Using
...End Using
구성 외부에서 내부 레이블로 분기할 수 없습니다.
분기 및 구문 시도
Try
...Catch
...Finally
구문 내에서 GoTo
문을 사용한 분기에 다음 규칙이 적용됩니다.
블록 또는 지역 | 외부에서 분기 | 내부에서 분기 |
---|---|---|
Try 블록 |
동일한 구문의 Catch 블록에서만 가능 1 |
전체 구문 외부에만 |
Catch 블록 |
절대 허용되지 않음 | 전체 구문 외부 또는 동일한 구문의 Try 블록에만 해당 1 |
Finally 블록 |
절대 허용되지 않음 | 절대 허용되지 않음 |
1 하나의 Try
...Catch
...Finally
구문이 다른 구문 내에 중첩된 경우 Catch
블록은 자체 중첩 수준에서 Try
블록으로 분기될 수 있지만 다른 Try
블록에는 포함되지 않습니다. 중첩된 Try
...Catch
...Finally
구문은 중첩된 구문의 Try
또는 Catch
블록에 완전히 포함되어야 합니다.
다음 그림에서는 다른 구문 내에 중첩된 하나의 Try
구문을 보여 줍니다. 두 구문의 블록 사이의 다양한 분기가 유효 또는 유효하지 않은 것으로 표시됩니다.
예시
다음 예에서는 GoTo
문을 사용하여 프로시저의 줄 레이블로 분기합니다.
Sub GoToStatementDemo()
Dim number As Integer = 1
Dim sampleString As String
' Evaluate number and branch to appropriate label.
If number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
sampleString = "Number equals 1"
GoTo LastLine
Line2:
' The following statement never gets executed because number = 1.
sampleString = "Number equals 2"
LastLine:
' Write "Number equals 1" in the Debug window.
Debug.WriteLine(sampleString)
End Sub
참고 항목
.NET