Successivo: Istruzione while, Su: Istruzioni [Contenuti][Indice]
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.