Procedura: passare alla successiva iterazione di un ciclo

Aggiornamento: novembre 2007

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 nidificato

Se sono presenti cicli Do, For o While nidificati, è possibile passare immediatamente all'iterazione successiva di qualsiasi livello della nidificazione. Questa affermazione, tuttavia, è vera soltanto quando i cicli sono di tipo differente. Se sono presenti cicli nidificati 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 nidificato

  1. Scrivere i cicli nidificati 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

Procedura: eseguire più istruzioni ripetutamente

Procedura: eseguire diverse istruzioni per ciascun elemento in un insieme o matrice

Procedura: migliorare le prestazioni di un ciclo

Concetti

Strutture di ciclo

Strutture di controllo nidificate

Riferimenti

Istruzione While...End While (Visual Basic)

Istruzione Do...Loop (Visual Basic)

Istruzione For...Next (Visual Basic)

Altre risorse

Flusso di controllo in Visual Basic