Procedura: passare alla successiva iterazione di un ciclo (Visual Basic)

Se è stata completata l'elaborazione dell'iterazione corrente di un ciclo Do, For o While, è possibile passare immediatamente all'iterazione successiva utilizzando un'Istruzione Continue (Visual Basic).

Passaggio all'iterazione successiva

Per passare all'iterazione successiva di un ciclo For...Next

  1. Scrivere il ciclo For...Next nel modo normale.

  2. Utilizzare Continue For nel punto in cui si desidera terminare l'iterazione corrente e passare immediatamente a quella successiva.

    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
    

Passaggio all'iterazione successiva dall'interno di un ciclo annidato

Se sono presenti cicli Do, For o While annidati, è possibile passare immediatamente all'iterazione successiva di qualsiasi livello della annidamento. Questa affermazione, tuttavia, è vera soltanto quando i cicli sono di tipo differente. Se sono presenti cicli annidati dello stesso tipo, ad esempio cicli While, Continue While passa all'iterazione successiva del ciclo While più interno.

Per passare all'iterazione successiva di un ciclo Do dall'interno di un ciclo For annidato

  1. Scrivere i cicli annidati nel modo normale.

  2. Utilizzare Continue Do nel punto in cui si desidera terminare l'iterazione corrente del ciclo For interno e passare all'iterazione successiva del ciclo Do esterno.

    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
    

Vedere anche

Attività

Procedura: trasferire un controllo fuori da una struttura di controllo (Visual Basic)

Procedura: eseguire più istruzioni ripetutamente (Visual Basic)

Procedura: eseguire diverse istruzioni per ciascun elemento in un insieme o in una matrice (Visual Basic)

Procedura: migliorare le prestazioni di un ciclo (Visual Basic)

Riferimenti

Istruzione While...End While (Visual Basic)

Istruzione Do...Loop (Visual Basic)

Istruzione For...Next (Visual Basic)

Concetti

Strutture di ciclo (Visual Basic)

Strutture di controllo annidate (Visual Basic)

Altre risorse

Flusso di controllo in Visual Basic