다음을 통해 공유


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 구문에서의 올바른 분기 및 잘못된 분기

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

참고 항목

참조

Do...Loop 문(Visual Basic)

For...Next 문(Visual Basic)

For Each...Next 문(Visual Basic)

If...Then...Else 문(Visual Basic)

Select...Case 문(Visual Basic)

Try...Catch...Finally 문(Visual Basic)

While...End While 문(Visual Basic)

With...End With 문(Visual Basic)