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

Обновлен: Ноябрь 2007

Передает управление непосредственно следующей итерации цикла.

Continue { Do | For | While }

Заметки

Можно перейти из очередной итерации цикла Do, For или While к следующей итерации этого цикла. Управление немедленно передается проверке условия цикла, что эквивалентно передаче оператору For или While, либо оператору Do или Loop, который содержит предложение Until или While.

Continue можно использовать в любом месте в цикле, в котором возможна передача. Правила разрешения передачи управления такие же, как для Оператор GoTo.

Например, если цикл полностью содержится внутри блока Try, Catch или Finally, можно использовать Continue для передачи вне цикла. Если, с другой стороны, структура блока Try...End Try находится внутри цикла, то нельзя использовать Continue для передачи управления из блока Finally, а можно использовать для передачи из блока Try или Catch, только если передача полностью вне структуры Try... End 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

См. также

Задачи

Практическое руководство. Переход к следующей итерации цикла

Ссылки

Оператор Do...Loop (Visual Basic)

Инструкция For... Next (Visual Basic)

Оператор While... End While (Visual Basic)

Оператор Try... Catch... Finally (Visual Basic)