Precedente: Operatori booleani, Su: Valori e condizioni di verità [Contenuti][Indice]
Un’espressione condizionale è un tipo particolare di espressione che ha
tre operandi. Consente di usare il primo valore dell’espressione per
scegliere una o l’altra delle due ulteriori espressioni.
L’espressione condizionale in awk
è la stessa di quella del
linguaggio C, ovvero:
selettore ? espr-se-vero : espr-se-falso
Ci sono tre sottoespressioni. La prima, selettore, viene sempre
calcolata per prima. Se è "vera" (non zero o non nulla), viene poi calcolata
espr-se-vero e il suo valore diventa il valore dell’intera espressione.
Altrimenti, la seconda espressione che viene calcolata è espr-se-falso
e il suo valore diventa il valore dell’intera espressione.
Per esempio, la seguente espressione produce il valore assoluto di x
:
x >= 0 ? x : -x
Ogni volta che viene calcolata un’espressione condizionale, solo una delle
espressioni espr-se-vero e espr-se-falso viene usata; l’altra
è ignorata. Questo è importante quando le espressioni hanno effetti
collaterali. Per esempio, quest’espressione condizionale esamina l’elemento
i
del vettore a
o del vettore b
, e incrementa i
:
x == y ? a[i++] : b[i++]
Questa istruzione garantisce che i
sia incrementato una volta sola
per ogni esecuzione dell’istruzione stessa, perché ogni volta viene eseguita
solo una delle due espressioni di incremento, mentre l’altra viene
ignorata.
Vedi la sezione Vettori in awk
,
per maggiori informazioni sui vettori.
Come estensione minore di gawk
,
un’istruzione che usa ‘?:’ si può continuare mettendo
semplicemente un ritorno a capo dopo i due caratteri.
Tuttavia, se si mette un ritorno a capo prima dei due
caratteri, la continuazione non funziona, se non si aggiunge anche la barra inversa
(vedi la sezione Istruzioni e righe in awk
).
Se viene specificata l’opzione --posix
(vedi la sezione Opzioni sulla riga di comando), quest’estensione è disabilitata.
Precedente: Operatori booleani, Su: Valori e condizioni di verità [Contenuti][Indice]