Оператор Continue (Visual Basic)

Передача элемента управления непосредственно в следующую итерацию цикла.

Синтаксис

Continue { Do | For | While }  

Замечания

Вы можете передать изнутри Doили ForWhile цикл в следующую итерацию этого цикла. Элемент управления немедленно передает тест условий цикла, который эквивалентен передаче в For оператор или While инструкцию или LoopDo инструкцию, содержащей 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

См. также