Оператор Exit (Visual Basic)
Завершает процедуру или блокировку и немедленно передает управление инструкции после вызова процедуры или определения блока.
Синтаксис
Exit { Do | For | Function | Property | Select | Sub | Try | While }
Выписки
Exit Do
Немедленно завершает Do
цикл, в котором он отображается. Выполнение продолжается с инструкцией, следующей за инструкцией Loop
. Exit Do
можно использовать только внутри Do
цикла. При использовании в вложенных циклах Exit Do
выходит из самого внутреннего цикла и передает управление на следующий более высокий уровень вложенностиDo
.
Exit For
Немедленно завершает For
цикл, в котором он отображается. Выполнение продолжается с инструкцией, следующей за инструкцией Next
. Exit For
можно использовать только внутри For
цикла ...Next
или For Each
...Next
. При использовании в вложенных циклах Exit For
выходит из самого внутреннего цикла и передает управление на следующий более высокий уровень вложенностиFor
.
Exit Function
Немедленно завершает процедуру Function
, в которой она отображается. Выполнение продолжается с инструкцией, следующей за инструкцией, которая называется процедурой Function
. Exit Function
можно использовать только внутри Function
процедуры.
Чтобы указать возвращаемое значение, можно назначить значение имени функции в строке перед инструкцией Exit Function
. Чтобы назначить возвращаемое значение и выйти из функции в одной инструкции, можно использовать оператор Return.
Exit Property
Немедленно завершает процедуру Property
, в которой она отображается. Выполнение продолжается с инструкцией, которая называется процедурой Property
, то есть с запросом или заданием значения свойства. Exit Property
можно использовать только внутри свойства Get
или Set
процедуры.
Чтобы указать возвращаемое значение в Get
процедуре, можно назначить значение имени функции в строке перед инструкцией Exit Property
. Чтобы назначить возвращаемое значение и выйти Get
из процедуры в одной инструкции, можно использовать инструкцию Return
.
В процедуре Set
Exit Property
оператор эквивалентен инструкции Return
.
Exit Select
Немедленно выходит из Select Case
блока, в котором он отображается. Выполнение продолжается с инструкцией, следующей за инструкцией End Select
. Exit Select
можно использовать только внутри инструкции Select Case
.
Exit Sub
Немедленно завершает процедуру Sub
, в которой она отображается. Выполнение продолжается с инструкцией, следующей за инструкцией, которая называется процедурой Sub
. Exit Sub
можно использовать только внутри Sub
процедуры.
В процедуре Sub
Exit Sub
оператор эквивалентен инструкции Return
.
Exit Try
Немедленно завершает Try
работу или Catch
блок, в котором он отображается. Выполнение продолжается с блоком Finally
, если есть один или с инструкцией, следующей End Try
за инструкцией в противном случае. Exit Try
можно использовать только внутри Try
или Catch
блоке, а не внутри Finally
блока.
Exit While
Немедленно завершает While
цикл, в котором он отображается. Выполнение продолжается с инструкцией, следующей за инструкцией End While
. Exit While
можно использовать только внутри While
цикла. При использовании в вложенных While
циклах Exit While
передает управление в цикл, который является одним вложенным уровнем над циклом, где Exit While
происходит.
Замечания
Не путайте Exit
операторы с End
операторами. Exit
не определяет конец инструкции.
Пример 1
В следующем примере условие цикла останавливает цикл, если index
переменная превышает 100. Однако оператор If
в цикле приводит Exit Do
к остановке цикла, когда переменная индекса превышает 10.
Dim index As Integer = 0
Do While index <= 100
If index > 10 Then
Exit Do
End If
Debug.Write(index.ToString & " ")
index += 1
Loop
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10
Пример 2
В следующем примере возвращается возвращаемое значение имени myFunction
функции, а затем используется Exit Function
для возврата из функции:
Function MyFunction(ByVal j As Integer) As Double
MyFunction = 3.87 * j
Exit Function
End Function
Пример 3
В следующем примере оператор Return используется для назначения возвращаемого значения и выхода из функции:
Function MyFunction(ByVal j As Integer) As Double
Return 3.87 * j
End Function