Instruction For...Next

Répète un nombre de fois spécifié les instructions comprises dans le bloc For...Next.

Syntaxe :

For compteur=début To fin [Step pas]

bloc d'instructions

[Exit For]

bloc d'instructions

Next [compteur]

Variables :

Compteur : le compteur de boucles assigne initialement la valeur à droite du signe égal (Début). Seules les variables numériques sont reconnues. Le compteur de boucles augmente ou diminue en fonction de la variable Pas jusqu'à ce que Fin soit transmis.

Début : variable numérique définissant la valeur initiale (début de la boucle).

Fin : variable numérique définissant la valeur finale (fin de la boucle).

Pas : définit le facteur d'augmentation ou de réduction du compteur de boucles. Si Pas n'est pas spécifié, le compteur de boucles est incrémenté de 1. Dans ce cas, Fin doit être supérieur à Début. Pour réduire le compteur, Fin doit être inférieur à Début et Pas doit avoir une valeur négative.

La boucle For...Next répète toutes les instructions comprises dans la boucle le nombre de fois spécifié par les paramètres.

Tandis que la variable du compteur diminue, LibreOffice Basic vérifie si la valeur finale a été atteinte. Dès que le compteur transmet la valeur finale, la boucle prend fin automatiquement.

Il est possible d'imbriquer des instructions For...Next. Si aucune variable n'est spécifiée après l'instruction Next, Next se réfère automatiquement à l'instruction For la plus récente.

Si vous spécifiez un incrément de 0, les instructions comprises entre For et Next sont répétées en continu.

Lorsque la variable du compteur diminue, LibreOffice Basic vérifie l'absence de débordement ou de soupassement de capacité. La boucle prend fin lorsque le compteur est supérieur à End (valeur de pas positive) ou inférieur à End (valeur de pas négative).

Utilisez l'instruction Exit For pour sortir de la boucle sans condition. Cette instruction doit être insérée à l'intérieur d'une boucle For...Next. Pour évaluer la condition de sortie, utilisez l'instruction If...Then comme suit :

For...

instructions

If condition = True Then Exit For

instructions

Next

Remarque : dans le cas de boucles For...Next imbriquées, si vous quittez une boucle sans condition au moyen de Exit For, vous ne quittez que cette boucle.

Exemple

L'exemple suivant utilise deux boucles imbriquées pour trier une matrice de type chaîne comportant 10 éléments ( sEntry() ) au contenu varié :

Sub ExampleSort

Dim sEntry(9) As String

Dim iCount As Integer

Dim iCount2 As Integer

Dim sTemp As String

    sEntry(0) = "Jérémie"

    sEntry(1) = "Patricia"

    sEntry(2) = "Kévin"

    sEntry(3) = "Thomas"

    sEntry(4) = "Michel"

    sEntry(5) = "David"

    sEntry(6) = "Cathy"

    sEntry(7) = "Suzanne"

    sEntry(8) = "Ernest"

    sEntry(9) = "Christine"

    For iCount = 0 To 9

        For iCount2 = iCount + 1 To 9

            If sEntry(iCount) > sEntry(iCount2) Then

                sTemp = sEntry(iCount)

                sEntry(iCount) = sEntry(iCount2)

                sEntry(iCount2) = sTemp

            End If

        Next iCount2

    Next iCount

    For iCount = 0 To 9

        Print sEntry(iCount)

    Next iCount

End Sub