Precedente: , Su: Valori e condizioni di verità   [Contenuti][Indice]


6.3.4 Espressioni condizionali

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: , Su: Valori e condizioni di verità   [Contenuti][Indice]