Оператор Continue (Visual Basic)
Передача элемента управления непосредственно в следующую итерацию цикла.
Синтаксис
Continue { Do | For | While }
Замечания
Вы можете передать изнутри Do
или For
While
цикл в следующую итерацию этого цикла. Элемент управления немедленно передает тест условий цикла, который эквивалентен передаче в For
оператор или While
инструкцию или Loop
Do
инструкцию, содержащей Until
предложение или While
предложение.
Вы можете использовать Continue
в любом расположении в цикле, который позволяет передавать. Правила, разрешающие передачу управления, совпадают с оператором GoTo.
Например, если цикл полностью содержится в Try
блоке, Catch
блоке или Finally
блоке, можно использовать Continue
для передачи из цикла. Если, с другой стороны, структура ...End Try
содержится в цикле, вы не можете использовать Continue
для передачи элемента управления Finally
из блока, и его можно использовать для передачи из Try
или Catch
блока только в том случае, если вы полностью выходите из Try
структуры ...End Try
.Try
Если у вас есть вложенные циклы одного типа, например Do
цикл в другом Do
цикле, Continue Do
оператор пропускает следующую итерацию самого Do
внутреннего цикла, содержащего его. Нельзя использовать Continue
для перехода к следующей итерации содержащего цикл одного типа.
Если у вас есть вложенные циклы разных типов, например Do
цикл в For
цикле, можно перейти к следующей итерации любого цикла с помощью одного Continue Do
или.Continue For
Пример
В следующем примере кода оператор используется Continue While
для перехода к следующему столбцу массива, если разделитель равен нулю. Находится Continue While
внутри For
цикла. Он передается While col < lastcol
оператору, который является следующей итерацией самого While
внутреннего цикла, содержащего For
цикл.
Dim row, col As Integer
Dim lastrow As Integer = 6
Dim lastcol As Integer = 10
Dim a(,) As Double = New Double(lastrow, lastcol) {}
Dim b(7) As Double
row = -1
While row < lastrow
row += 1
col = -1
While col < lastcol
col += 1
a(row, col) = 0
For i As Integer = 0 To b.GetUpperBound(0)
If b(i) = col Then
Continue While
Else
a(row, col) += (row + b(i)) / (col - b(i))
End If
Next i
End While
End While