Euphoria - déclaration while

Une boucle while est une structure de contrôle qui vous permet de répéter une tâche un certain nombre de fois.

Syntaxe

La syntaxe d'une boucle while est la suivante -

while expression do
   -- Statements executed if expression returns true
end while

Lors de l'exécution, si l' expression donne la valeur true, les actions à l'intérieur de la boucle sont exécutées. Cela continue tant que le résultat de l'expression est vrai.

Le point clé de la en boucle est que, la boucle peut jamais courir. Lorsque l'expression est testée et que le résultat est faux, le corps de la boucle est ignoré et la première instruction après la boucle while est exécutée.

Exemple

#!/home/euphoria-4.0b2/bin/eui

integer a = 10

while a < 20 do
   printf(1, "value of a : %d\n", a)
   a = a + 1
end while

Cela produit le résultat suivant -

value of a : 10
value of a : 11
value of a : 12
value of a : 13
value of a : 14
value of a : 15
value of a : 16
value of a : 17
value of a : 18
value of a : 19

Le while ... avec déclaration d' entrée

Il arrive souvent que la première itération d'une boucle soit en quelque sorte spéciale. Certaines choses doivent être faites avant le début de la boucle. Ils sont effectués avant l'instruction commençant la boucle.

le with entryla déclaration sert très bien le but. Vous devez utiliser cette instruction avec la boucle while et ajouter simplement leentry mot-clé au point où vous souhaitez que la première itération commence.

Syntaxe

La syntaxe d'une boucle while avec entrée est la suivante -

while expression with entry do
   -- Statements executed if expression returns true
entry
   -- Initialisation statements.
end while

Avant d'exécuter l' expression, il exécute des instructions d'initialisation, puis il démarre comme une boucle while normale. Plus tard, ces instructions d'initialisation font partie du corps de la boucle.

Exemple

#!/home/euphoria-4.0b2/bin/eui

integer a = 10

while a < 20 with entry do
   printf(1, "value of a : %d\n", a)
   a = a + 1
entry
   a = a + 2
end while

Cela produit le résultat suivant -

value of a : 12
value of a : 15
value of a : 18

La déclaration while .... label

UNE while la boucle peut avoir un label clause juste avant la première domot-clé. Vous pouvez conserver la clause d'étiquette avant ou aprèsenter clause.

Une étiquette de boucle while est utilisée uniquement pour nommer le bloc de boucle et les noms d'étiquette doivent être des chaînes constantes entre guillemets doubles comportant un ou plusieurs mots. Le mot-clé label est sensible à la casse et doit être écrit commelabel.

Syntaxe

La syntaxe d'une boucle while avec clause label est la suivante -

while expression label "Label Name" do
   -- Statements executed if expression returns true
end while

Les étiquettes sont très utiles lorsque vous utilisez des boucles while imbriquées. Vous pouvez utilisercontinue ou exit instructions de contrôle de boucle avec des noms d'étiquettes pour contrôler le flux des boucles.

Exemple

#!/home/euphoria-4.0b2/bin/eui

integer a = 10
integer b = 20

while a < 20 label "OUTER" do
   printf(1, "value of a : %d\n", a)
   a = a + 1
   
   while b < 30 label "INNER" do
      printf(1, "value of b : %d\n", b)
      b = b + 1
      
      if b > 25 then
         continue "OUTER"  -- go to start of OUTER loop
      end if
   end while
end while

Cela produit le résultat suivant -

value of a : 10
value of b : 20
value of b : 21
value of b : 22
value of b : 23
value of b : 24
value of b : 25
value of a : 11
value of b : 26
value of a : 12
value of b : 27
value of a : 13
value of b : 28
value of a : 14
value of b : 29
value of a : 15
value of a : 16
value of a : 17
value of a : 18
value of a : 19