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