Successivo: , Precedente: , Su: Istruzioni   [Contenuti][Indice]


7.4.6 L’istruzione break

L’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: , Precedente: , Su: Istruzioni   [Contenuti][Indice]