다음을 통해 공유


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 구문을 보여 줍니다. 두 구문의 블록 사이의 다양한 분기가 유효 또는 유효하지 않은 것으로 표시됩니다.

Graphic diagram of branching in Try constructions

예시

다음 예에서는 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

참고 항목