Successivo: Istruzione continue, Precedente: Istruzione switch, Su: Istruzioni [Contenuti][Indice]
breakL’istruzione break esce dal ciclo più interno for,
while o do dentro al quale si trova. L’esempio seguente
trova, se esiste, il divisore più piccolo di un dato numero intero, oppure
dichiara che si tratta di un numero primo:
# trova il divisore più piccolo di num
{
num = $1
for (divisore = 2; divisore * divisore <= num; divisore++) {
if (num % divisore == 0)
break
}
if (num % divisore == 0)
printf "Il più piccolo divisore di %d è %d\n", num, divisore
else
printf "%d è un numero primo\n", num
}
Quando il resto della divisione è zero nella prima istruzione if,
awk immediatamente esce, a causa del break, dal ciclo
for in cui è contenuto. Ciò vuol dire
che awk prosegue immediatamente fino all’istruzione che viene dopo
il ciclo, e continua l’elaborazione. (L’istruzione break è molto
differente dall’istruzione exit,
la quale termina l’intero programma awk.
Vedi la sezione L’istruzione exit.)
Il seguente programma mostra come la condizione di un’istruzione
for o while potrebbe essere sostituita da un’istruzione
break all’interno di un if:
# trova il divisore più piccolo di num
{
num = $1
for (divisore = 2; ; divisore++) {
if (num % divisore == 0) {
printf "Il più piccolo divisore di %d è %d\n", num, divisore
break
}
if (divisore * divisore > num) {
printf "%d è un numero primo\n", num
break
}
}
}
L’istruzione break è usata anche per terminare l’esecuzione di
un’istruzione switch.
Questo argomento è trattato in L’istruzione switch.
L’istruzione break non ha significato se
usata fuori dal corpo di un ciclo o di un’istruzione switch.
Tuttavia, anche se la cosa non è mai stata documentata,
le prime implementazioni di awk consideravano l’istruzione break
esterna a un ciclo come 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 fa gawk.
Successivo: Istruzione continue, Precedente: Istruzione switch, Su: Istruzioni [Contenuti][Indice]