Introduzione
Nella programmazione, ci saranno molte occasioni in cui vorrete eseguire diversi blocchi di codice a seconda dell'input dell'utente o di altri fattori.
Ad esempio, potresti voler inviare un modulo se ogni campo è compilato correttamente, ma potresti voler impedire l'invio di quel modulo se mancano alcuni campi obbligatori. Al fine di svolgere compiti come questi abbiamo dichiarazioni condizionali (conditional statements), che sono parte integrante di tutti i linguaggi di programmazione.
Le dichiarazioni condizionali eseguono un'azione specifica basata sui risultati di un risultato di true
o false
.
Alcuni esempi di istruzioni condizionali JavaScript che potresti vedere includono:
- Controlla la posizione di un utente e visualizza la lingua corretta in base al paese
- Includi un modulo al momento dell'invio o visualizza avvisi accanto ai campi obbligatori mancanti
- Apri un menu a discesa su un evento clic o chiudi un menu a discesa se è già aperto
- Visualizza il sito Web di un fornitore di alcolici se l'utente ha superato l'età legale per bere
- Visualizza il modulo di prenotazione per un hotel ma non se l'hotel è prenotato
Le dichiarazioni condizionali fanno parte della logica, del processo decisionale o del controllo del flusso di un programma per computer.
In questo tutorial, andremo oltre istruzioni condizionali, compresi if
, else
e le parole chiave else if
. Tratteremo anche l'operatore ternario.
Dichiarazione If
La più fondamentale delle dichiarazioni condizionali è la dichiarazione if
. Un'istruzione if
valuterà se un'istruzione è vera o falsa e verrà eseguita solo se l'istruzione ritorna true
. Il blocco di codice verrà ignorato nel caso di un risultato false
e il programma passerà alla sezione successiva.
Un'istruzione if
viene scritta con la parola chiave if
, seguita da una condizione tra parentesi, con il codice da eseguire tra parentesi graffe. In breve, può essere scritto come if () {}
.
Ecco un esame più lungo della dichiarazione di base if
.
if (condition) {
// code that will execute if condition is true
}
Il contenuto di un'istruzione if
è compreso tra le parentesi graffe che contengono il blocco di codice da eseguire e non finiscono con un punto e virgola, proprio come un blocco funzione.
Ad esempio, consideriamo un'app per lo shopping. Supponiamo che, per la funzionalità di questa app, un utente che ha depositato una determinata quantità di fondi nel proprio account desideri acquistare un articolo dal negozio.
You have enough money to purchase the item!
Abbiamo un saldo del conto 500
e vogliamo comprare un paio di jeans per 40
. Utilizzando l'operatore minore o uguale, possiamo verificare se il prezzo dei jeans è inferiore o uguale alla quantità di fondi che abbiamo. Poiché jeans <= balance
viene valutato true
, la condizione passerà e verrà eseguito il blocco di codice.
In un nuovo esempio, creeremo un nuovo articolo del negozio che costa più del saldo disponibile.
Questo esempio non avrà output, poiché phone <= balance
è valutato false
. Il blocco di codice verrà semplicemente ignorato e il programma procederà alla riga successiva.
Dichiarazione Else
Con le istruzioni if
, eseguiamo il codice solo quando viene valutata un'istruzione true
, ma spesso desideriamo che accada qualcos'altro se la condizione fallisce.
Ad esempio, potremmo voler visualizzare un messaggio che indica all'utente quali campi sono stati compilati correttamente se un modulo non è stato inviato correttamente. In questo caso, utilizzeremo l'istruzione else
, che è il codice che verrà eseguito se la condizione originale non ha esito positivo.
La dichiarazione else
è scritta dopo la dichiarazione if
e non ha condizioni tra parentesi. Ecco la sintassi per un'istruzione if...else
di base .
if (condition) {
// code that will execute if condition is true
} else {
// code that will execute if condition is false
}
Utilizzando lo stesso esempio di cui sopra, possiamo aggiungere un messaggio per visualizzare se i fondi nel conto sono troppo bassi.
You do not have enough money in your account to purchase this item.
Poiché la condizione if
non è riuscita, verrà eseguito solamente il codice all'interno dell'istruzione else
.
Questo può essere molto utile per mostrare avvisi o per far sapere all'utente quali azioni intraprendere per andare avanti. Di solito sarà necessaria un'azione sia per il successo che per il fallimento, quindi if...else
è più comune di una sola istruzione if
isolata.
Dichiarazione Else if
Con if
e else
, possiamo eseguire blocchi di codice a seconda che una condizione sia true
o false
. Tuttavia, a volte potremmo avere più possibili condizioni e risultati e abbiamo bisogno di più di due semplici opzioni. Un modo per farlo è con l'affermazione else if
, che può valutare più di due possibili esiti.
Ecco un esempio di base di un blocco di codice che contiene un'istruzione if
, più istruzioni else if
e un'istruzione else
nel caso in cui nessuna delle condizioni venga valutata true
.
if (condition a) {
// code that will execute if condition a is true
} else if (condition b) {
// code that will execute if condition b is true
} else if (condition c) {
// code that will execute if condition c is true
} else {
// code that will execute if all above conditions are false
}
JavaScript tenterà di eseguire tutte le istruzioni in ordine e, se nessuna di esse ha esito positivo, verrà impostato automaticamente sul blocco else
.
Puoi avere tutte le dichiarazioni else if
necessarie. Nel caso di molte dichiarazioni else if
, la dichiarazione switch
potrebbe essere preferita per la leggibilità.
Come esempio di più dichiarazioni else if
, possiamo creare un'app di valutazione che produrrà un voto in lettere basato su un punteggio su 100.
I requisiti di questa app sono i seguenti:
- Il grado 90 e superiore è un A
- Il grado da 80 a 89 è un B.
- Il grado da 70 a 79 è un C
- Il grado da 60 a 69 è una D
- Il grado di 59 o inferiore è una F
Qui di seguito creeremo un semplice insieme di dichiarazioni if
, else
e else if
, e testeremo i gradi con un valore dato.
B
Nel nostro esempio, controlliamo prima il punteggio più alto, che sarà maggiore o uguale a 90
. Dopo di che, la dichiarazione else if
si verifica per più di 80
, 70
e 60
fino a raggiungere il valore di default else
.
Anche se il nostro valore grade
di 87
è tecnicamente vero anche per C
, D
e F
, le dichiarazioni si fermeranno al primo che ha successo. Pertanto, otteniamo un output di B
, che è la prima corrispondenza.
Operatore ternario
L'operatore ternario (ternary operator), noto anche come operatore condizionale, viene utilizzato come scorciatoia per un'istruzione if...else
.
Un operatore ternario è scritto con la sintassi di un punto interrogativo (?
) seguito da due punti (:
), come dimostrato di seguito.
(condition) ? expression on true : expression on false
Nell'istruzione precedente, la condizione viene scritta per prima, seguita da a ?
. La prima espressione verrà eseguita su true
e la seconda espressione verrà eseguita su false
. È molto simile a un'istruzione if...else
, con una sintassi più compatta.
In questo esempio, creeremo un programma che controlla se un utente è 21
o meno. In tal caso, verrà stampato "You may enter"
sulla console. In caso contrario, verrà stampato "You may not enter."
sulla console.
'You may not enter.'
Poiché age
dell'utente era inferiore a 21
, il messaggio di errore viene inviato alla console. L'equivalente if...else
a questo sarebbe "You may enter."
nella dichiarazione if
e "You may not enter."
nella dichiarazione else
.
Conclusione
Le istruzioni condizionali ci forniscono il controllo del flusso per determinare l'output dei nostri programmi. Sono uno dei mattoni fondamentali della programmazione e possono essere trovati praticamente in tutti i linguaggi di programmazione.
In questo articolo, abbiamo appreso come utilizzare parole chiave if
, else
e else if
, l'annidamento di istruzioni e l'uso dell'operatore ternario.