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


7.4.1 L’istruzione if-else

L’istruzione if-else è quella che serve in awk per prendere decisioni. È simile a questa:

if (condizione) se-vera-fai [else se-falsa-fai]

La condizione è un’espressione che controlla quel che fa il resto dell’istruzione. Se la condizione è vera, viene eseguita la parte se-vera-fai; altrimenti viene eseguita la parte se-falsa-fai. La parte else dell’istruzione è opzionale. La condizione è considerata falsa se il suo valore è zero o la stringa nulla; altrimenti, la condizione è vera. Si consideri quanto segue:

if (x % 2 == 0)
    print "x è pari"
else
    print "x è dispari"

In questo esempio, se l’espressione ‘x % 2 == 0’ è vera (cioè, se il valore di x è esattamente divisibile per due), allora viene eseguita la prima istruzione print; altrimenti, viene eseguita la seconda istruzione print. Se la parola chiave else sta sulla stessa riga di se-vera-fai e se se-vera-fai non è un’istruzione composta (cioè, non è racchiusa tra parentesi graffe), allora un punto e virgola deve separare se-vera-fai dalla parola chiave else. Per chiarire questo, l’esempio precedente si può riscrivere come:

if (x % 2 == 0) print "x è pari"; else
        print "x è dispari"

Se il ‘;’ è omesso, awk non può interpretare l’istruzione e segnala un errore di sintassi. Non si dovrebbero scrivere programmi in questo modo, perché a chi li legge potrebbe sfuggire la parola chiave else se non è la prima parola della riga.