Euforia - dichiarazione while

Un ciclo while è una struttura di controllo che ti consente di ripetere un'attività per un certo numero di volte.

Sintassi

La sintassi di un ciclo while è la seguente:

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

Durante l'esecuzione, se l' espressione risulta vera, vengono eseguite le azioni all'interno del ciclo. Questo continua finché il risultato dell'espressione è vero.

Il punto chiave del ciclo while è che il ciclo potrebbe non essere mai eseguito. Quando l'espressione viene testata e il risultato è falso, il corpo del ciclo viene ignorato e viene eseguita la prima istruzione dopo il ciclo while.

Esempio

#!/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

Questo produce il seguente risultato:

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

Il mentre .... con dichiarazione di entrata

Spesso accade che la prima iterazione di un ciclo sia in qualche modo speciale. Alcune cose devono essere fatte prima che il ciclo inizi. Vengono eseguiti prima dell'istruzione che avvia il ciclo.

Il with entryl'affermazione serve molto bene allo scopo. È necessario utilizzare questa istruzione con il ciclo while e aggiungere semplicemente il fileentry parola chiave nel punto in cui desideri che inizi la prima iterazione.

Sintassi

La sintassi di un ciclo while con voce è la seguente:

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

Prima di eseguire l' espressione, esegue le istruzioni di inizializzazione e quindi inizia come un normale ciclo while. Successivamente, queste istruzioni di inizializzazione diventano parte del corpo del ciclo.

Esempio

#!/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

Questo produce il seguente risultato:

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

L' istruzione while .... label

UN while loop può avere un file label clausola appena prima della prima doparola chiave. Puoi mantenere la clausola dell'etichetta prima o dopoenter clausola.

Un'etichetta del ciclo while viene utilizzata solo per denominare il blocco del ciclo ei nomi delle etichette devono essere stringhe costanti con virgolette doppie con parole singole o multiple. La parola chiave label distingue tra maiuscole e minuscole e deve essere scritta comelabel.

Sintassi

La sintassi di un ciclo while con clausola label è la seguente:

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

Le etichette sono molto utili quando si utilizzano cicli while annidati. Puoi usarecontinue o exit istruzioni di controllo del ciclo con nomi di etichette per controllare il flusso dei cicli.

Esempio

#!/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

Questo produce il seguente risultato:

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