L'istruzione if/else
a mio modesto parere è forse una delle istruzioni più potenti che un programmatore ha a disposizione. Permette di scegliere quale porzione di codice eseguire e quale no.
Per essere più specifici if
esegue un'istruzione se una specifica condizione risulta veritiera. Qualora invece risultasse falsa, allora un'altra istruzione potrebbe essere eseguita.
Vediamo un piccolo esempio.
1function maggioreDi(a, b) {
2 let risultato;
3 if (a > b) {
4 risultato = "A è maggiore di B";
5 } else {
6 risultato = "A è minore o uguale a B";
7 }
8 return risultato;
9}
Nell'esempio qui sopra la condizione a > b
restituisce un valore booleano. Supponendo di passare di chiamare la funzione in questo modo: maggioreDi(5,2)
, il confronto risulterà vero (5 è maggiore di 2). Alla variabile risultato verrà assegnata la stringa "A è maggiore di B"
e tale valore verrà poi restituito alla fine della funzione.
Qualora invece la funzione fosse stata chiamata così maggioreDi(2,5)
, in questo caso la condizione tra le parentesi tonde non sarebbe risultata vera, ma falsa e quindi sarebbe stato eseguito il blocco di codice presente tra le parentesi graffe di else
.
Generalizzando la sintassi
1if (condizione) {
2 istruzione1
3} else {
4 istruzione2
5}
Dove:
condizione
è l'espressione che deve essere valutata come vera o falsa.istruzione1
istruzione che viene eseguita se la condizione risulta vera. Può essere qualunque cosa un altroif
o istruzioni multiple.istruzione2
istruzione che viene eseguita se la condizione risulta falsa. Come per l'istruzione1
può essere qualsiasi cosa (a patto, ovviamente, che abbia senso).
Testare più casistiche
Se le condizioni da testare sono multiple possiamo avvalerci ancora di if/else
, ma usando else if
.
1if (condizione1) {
2 istruzione1
3} else if (condizione2) {
4 istruzione2
5} else if (condizione3) {
6 istruzione3
7} else {
8 istruzione_n
9}
Con questa struttura di controllo se la condizione1
risulta falsa, si passa alla condizione2
, poi alla condizione3
e se nessuna delle condizioni dovesse risultare vera verrà eseguito il blocco di istruzioni di else
.
Best Practice
Alcune best practice da tenere a mente quando si usa if/else
sono sicuramente:
Non scrivere else
se non ci sono istruzioni da eseguire, basta semplicemente ometterlo.
1// No
2if (utenteAutenticato()) {
3 console.log("Benvenuto Manuel");
4} else {
5 // Non faccio niente
6}
7
8// Sì
9if (utenteAutenticato()) {
10 console.log("Benvenuto Manuel");
11}
Non lasciare un blocco if vuoto se devi eseguire qualcosa solo nel blocco else.
1// No
2if (utenteAutenticato()) {
3 // Non faccio niente
4} else {
5 console.log("Ciao Utente");
6}
7
8// Sì
9if (!utenteAutenticato()) {
10 console.log("Ciao Utente");
11}
N.B. Da notare l'uso dell'operatore logico NOT
Concatenare più condizioni con gli operatori logici
1// No
2if (utenteAutenticato()) {
3 if (utenteAmministratore()) {
4 console.log("Ciao Amministratore Manuel");
5 }
6} else {
7 console.log("Ciao Utente");
8}
9// Sì
10if (utenteAutenticato() && utenteAmministratore()) {
11 console.log("Ciao Amministratore Manuel");
12} else {
13 console.log("Ciao Utente");
14}
Caricamento...
Diventiamo amici di penna? ✒️
Iscriviti alla newsletter per ricevere una mail ogni paio di settimane con le ultime novità, gli ultimi approfondimenti e gli ultimi corsi gratuiti puubblicati. Ogni tanto potrei scrivere qualcosa di commerciale, ma solo se mi autorizzi, altrimenti non ti disturberò oltre.
Se non ti piace la newsletter ti ricordo la community su Discord, dove puoi chiedere aiuto, fare domande e condividere le tue esperienze (ma soprattutto scambiare due meme con me). Ti aspetto!