Successivo: Istruzione next, Precedente: Istruzione break, Su: Istruzioni [Contenuti][Indice]
continue
Analogamente a break
, l’istruzione continue
è usata solo
all’interno di cicli for
, while
e do
. L’istruzione
ignora il resto del corpo del ciclo, facendo sì che la successiva iterazione
del ciclo inizi immediatamente. Questo comportamento è differente da quello
di break
, che esce completamente dal ciclo.
L’istruzione continue
in un ciclo for
fa sì che awk
ignori il resto del corpo del ciclo e prosegua l’esecuzione con l’espressione
incremento dell’istruzione for
. Il seguente programma
è un esempio di ciò:
BEGIN { for (x = 0; x <= 20; x++) { if (x == 5) continue printf "%d ", x } print "" }
Questo programma stampa tutti i numeri da 0 a 20 — tranne il 5, in cui
l’istruzione printf
è saltata. Siccome l’incremento ‘x++’
non viene saltato, x
non rimane fermo al valore 5. Si confronti il ciclo
for
dell’esempio precedente con il seguente ciclo while
:
BEGIN { x = 0 while (x <= 20) { if (x == 5) continue printf "%d ", x x++ } print "" }
Questo programma inizia un ciclo infinito dopo che x
ha assunto il
valore 5, poiché l’istruzione di incremento (‘x++’) non è mai raggiunta.
L’istruzione continue
non ha un significato speciale se appare in
un’istruzione switch
, e non ha alcun significato se usata fuori dal
corpo di un ciclo. Le prime versioni di awk
trattavano le
istruzioni continue
che erano fuori da un ciclo allo stesso modo con
cui trattavano l’istruzione break
fuori da un ciclo: come se fosse un’istruzione next
(vedi la sezione L’istruzione next
).
(a.b.)
Versioni recenti di BWK awk
non consentono più un tale uso,
e lo stesso vale per gawk
.
Successivo: Istruzione next, Precedente: Istruzione break, Su: Istruzioni [Contenuti][Indice]