GoTo 문
업데이트: 2007년 11월
프로시저의 지정된 줄로 무조건 분기합니다.
GoTo line
구성 요소
- line
필수적 요소이며 임의의 줄 레이블입니다.
설명
GoTo 문은 프로시저의 줄로만 분기할 수 있습니다. 줄에는 GoTo가 참조할 수 있는 줄 레이블이 있어야 합니다. 자세한 내용은 방법: Label 문을 참조하십시오.
참고: |
---|
GoTo 문을 사용하면 코드를 읽고 유지하는 것이 어렵게 됩니다. 가능하면 컨트롤 구조를 사용하는 것이 좋습니다. 자세한 내용은 Visual Basic의 제어 흐름을 참조하십시오. |
For...Next, For Each...Next, SyncLock...End SyncLock, Try...Catch...Finally, With...End With 또는 Using...End Using 구문 외부에서 내부 레이블로 분기하는 데 GoTo 문을 사용할 수 없습니다.
분기 및 Try 구문
Try...Catch...Finally 구문 내에서 GoTo 문을 사용하여 분기할 때 다음 규칙을 적용합니다.
블록 또는 지역 |
외부에서 내부로 분기 |
내부에서 외부로 분기 |
---|---|---|
Try 블록 |
동일한 구문1의 Catch 블록에서만 가능 |
전체 구문의 외부에만 가능 |
Catch 블록 |
허용하지 않음 |
전체 구문의 외부 또는 동일한 구문1의 Try 블록에만 가능 |
Finally 블록 |
허용하지 않음 |
허용하지 않음 |
1 하나의 Try...Catch...Finally 구문이 다른 Try...Catch...Finally 구문에 중첩된 경우 Catch 블록은 같은 중첩 수준에 있는 Try 블록으로 분기할 수 있지만 다른 중첩 수준의 Try 블록으로는 분기할 수 없습니다. 중첩된 Try...Catch...Finally 구문은 중첩된 내부에 있는 구문의 Try 또는 Catch 블록 내에 완전히 포함되어 있어야 합니다.
다음 그림은 다른 구문 내에 중첩된 하나의 Try 구문을 보여 줍니다. 두 구문의 블록 사이에 여러 분기가 올바른 분기 또는 잘못된 분기로 표시되어 있습니다.
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
참고 항목
참조
For Each...Next 문(Visual Basic)
If...Then...Else 문(Visual Basic)
Try...Catch...Finally 문(Visual Basic)