Documentation de Gambas - /lang/do

/lang/do

# DO

DO [ WHILE Condition ] . . . [ BREAK | CONTINUE ] . . . LOOP [ UNTIL Condition ]

Répéte un certain nombre d'instructions tant que la condition initiale reste vraie ou jusqu'à ce que la condition finale devienne vraie. Si ni WHILE ni UNTIL n’est utilisé, la boucle devient une boucle dont on ne peut sortir que par l’instruction BREAK. Si l’instruction break est manquante, dans ce cas, elle devient une boucle infinie, une condition qui est pour le moins universellement indésirable.

Partie | Description
--- | ---
DO | Toujours la première déclaration de la boucle.
WHILE | Si utilisé, l'état d'une Condition doit rester vraie pour exécuter la boucle.
UNTIL | Si utilisé, l'état d'une Condition doit devenir vraie pour arrêter l'exécution de la boucle.
Condition | N'importe quelle expression booléen.
BREAK | Sort de la boucle immédiatement et continue l'exécution du programme à la prochaine ligne après la boucle.
CONTINUE | Saute immédiatement à la fin de la boucle et n'exécute pas les instructions suivantes, redémarre un nouveau tour de boucle.
LOOP | Toujours la dernière déclaration de la boucle.

Si la Condition initiale est fausse dès le départ, alors la boucle n'est pas exécutée du tout. Autrement, la boucle sera exécutée au moins une fois, même si la Condition finale est vraie dès le début.

### Exemples

    ' Une boucle très simple

    a = 1

    DO WHILE a <= 5
      PRINT "Bonjour monde"; a
      INC a
    LOOP

    Bonjour monde 1
    Bonjour monde 2
    Bonjour monde 3
    Bonjour monde 4
    Bonjour monde 5

    ' Même effet avec UNTIL

    DO
      PRINT " Bonjour monde "; a
      INC a
    LOOP UNTIL a = 6

Assurez vous que la variable "a" n'ait pas une valeur supérieure à 5 à l’entrée de la boucle. "a" serait incrémenté à une valeur supérieure à 6, et le seul moyen de sortir de la boucle serait perdu. Donc pour limiter les risques de boucle infinie, utilisez plutôt "LOOP a > 5".

### Exemples

    ' Cette boucle n'atteindra jamais sa valeur finale
    a = 1

    DO WHILE a <= 5
      PRINT "Bonjour monde"; a
      INC a
      IF a = 4 THEN BREAK
    LOOP

    Bonjour monde 1
    Bonjour monde 2
    Bonjour monde 3

### Voir aussi

- Structures de boucles