Поделиться через


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

После завершения обработки текущей итерации цикла Do, For или While можно перейти к следующей итерации с помощью Оператор Continue (Visual Basic).

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

Чтобы перейти к следующей итерации цикла For... Next

  1. Запишите цикл For... Next обычным способом.

  2. Используйте Continue For в любом месте, где необходимо завершить текущую итерацию и перейти сразу к следующей итерации.

    Public Function findLargestRatio(ByVal high() As Double, 
        ByVal low() As Double) As Double
        Dim ratio As Double
        Dim largestRatio As Double = Double.MinValue
        For counter As Integer = 0 To low.GetUpperBound(0)
            If Math.Abs(low(counter)) < 
               System.Double.Epsilon Then Continue For 
            ratio = high(counter) / low(counter)
            If Double.IsInfinity(ratio) OrElse 
               Double.IsNaN(ratio) Then Continue For 
            If ratio > largestRatio Then largestRatio = ratio
        Next counter
        Return largestRatio
    End Function
    

Пропуск из вложенного внутрь цикла

Если имеются циклы Do, For или While, вложенные один в другой, можно пропустить до следующей итерации любого уровня вложения. Это возможно только тогда, когда циклы принадлежат различным типам. Если у вас есть вложенные циклы одного типа, например, вложенные циклы While, Continue While переходит к следующей итерации цикла внутреннего цикла While.

Чтобы перейти к следующей итерации цикла Do из вложенного внутрь цикла For

  1. Запишите вложенные циклы обычным способом.

  2. Используйте Continue Do в любом месте, где требуется завершить текущую итерацию внутреннего цикла For и перейти к следующей итерации внешнего цикла Do.

    Public Sub divideElements(ByRef matrix(,) As Double)
        Dim i As Integer = -1
        Do Until i > matrix.GetUpperBound(0)
            i += 1
            For j As Integer = 0 To matrix.GetUpperBound(1)
                If matrix(j, j) = 0 Then Continue Do 
                matrix(i, j) /= matrix(j, j)
            Next j
        Loop 
    End Sub
    

См. также

Задачи

Практическое руководство. Передача управления за пределы структуры управления (Visual Basic)

Практическое руководство. Повторное выполнение нескольких инструкций (Visual Basic)

Практическое руководство. Запуск нескольких операторов для каждого элемента в коллекции или массиве (Visual Basic)

Практическое руководство. Улучшение быстродействия цикла (Visual Basic)

Ссылки

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

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

Оператор For... Next (Visual Basic)

Основные понятия

Циклические структуры (Visual Basic)

Вложенные структуры управления (Visual Basic)

Другие ресурсы

Управление ходом выполнения в Visual Basic