La struttura condizionata in Javascript
Per creare una struttura condizionata nel linguaggio Javascript utilizzo l'istruzione if
if (condizione) {
blocco di codice
}
La condizione va posta tra le parentesi tonde dopo l'istruzione if
Il blocco di codice da eseguire se la condizione è vera va inserito tra due parentesi graffe { } su una o più righe.
Ogni riga deve terminare con il punto e virgola.
Nota. Le parentesi graffe indicano all'interprete Javascript che si tratta di un unico blocco di codice. Eventualmente posso aggiungere anche una clausola else dove inserire un secondo blocco codice da eseguire quando la condizione è falsa.
Se il codice da eseguire è composto da una sola riga e non c'è alcuna clausola else, posso anche scrivere tutta la struttura condizionale in una sola riga.
if (condizione) istruzione_da_eseguire;
Un esempio pratico
Questo script riconosce se un numero è pari
<script>
numero=prompt("digita un numero");
if (numero%2==0) {
document.write("il numero è pari");
}
</script>
Nello script chiedo all'utente di digitare un numero tramite l'istruzione prompt.
Poi assegno il valore digitato dall'utente alla variabile numero.
La struttura condizionata è legata al resto della divisione del numero per due.
if (numero%2==0) {
...
}
Se il resto della divisione numero%2==0 è uguale a zero la condizione è vera.
In questo caso la struttura condizionale esegue il codice condizionato document.write("il numero è pari");e stampa sullo schermo "il numero è pari".
il numero è pari
Nota. Se il resto della divisione è diverso da zero la condizione è falsa. In questo caso la struttura if non fa nulla. Non esegue il blocco di codice. L'esecuzione del programma continua alla prima istruzione dopo la struttura if.
La clausola else
La clausola else mi permette di aggiungere alla struttura condizionale un altro blocco di codice da eseguire se la condizione principale è falsa.
if (condizione) {
blocco di codice
} else {
blocco di codice 2
}
La clausola else è facoltativa, può anche mancare del tutto.
In ogni caso può esserci al massimo una clausola else nella struttura condizionale.
Esempio
Modifico lo script precedente aggiungendo la clausola else
<script>
numero=prompt("digita un numero");
if (numero%2==0) {
document.write("il numero è pari");
} else {
document.write("il numero è dispari");
}
</script>
Ora la struttura condizionale può dirmi se il numero digitato dall'utente è pari o dispari.
La struttura condizionata è legata al resto della divisione del numero per due.
- Se il resto della divisione è zero, la condizione è vera. In questo caso lo script stampa sullo schermo "il numero è pari".
il numero è pari
- Se il resto della divisione è diverso da zero, la condizione è falsa. In questo caso lo script stampa a video "il numero è dispari".
il numero è dispari
Le clausole else if
La struttura if ammette anche la presenza di una o più clausole else if
if (condizione) {
blocco di codice
}
else if (condizione 2) {
blocco di codice 2
}
else if (condizione 3) {
blocco di codice 3
}
...
else {
blocco di codice else
}
Ogni clausola else if è accompagnata da una condizione tra parentesi tonde e da un blocco di codice tra parentesi graffe.
Le clausole else if sono facoltative. Possono anche mancare del tutto.
Inoltre, non c'è limite al numero di else if che posso aggiungere.
Esempio
In questo script chiedo all'utente di digitare un numero positivo
<script>
numero=prompt("digita un numero maggiore di zero");
if (numero>2) {
document.write("molti");
}
else if (numero==2) {
document.write("un paio");
}
else if (numero==1) {
document.write("uno solo");
}
else {
document.write("nessuno");
}
</script>
Poi memorizzo il numero appena digitato dall'utente nella variabile numero.
La struttura condizionale analizza il numero
- numero>2
se il numero è maggiore di due (condizione if principale) lo script stampa "molti"molti
- numero==2
se il numero è uguale a due (prima else if) lo script stampa "un paio"un paio
- numero==1
se il numero è uguale a uno (seconda else if) lo script stampa "uno solo"uno solo
- else
in tutti gli altri casi (else) se nessuna delle precedenti condizioni è vera lo script stampa "nessuno"nessuno
E così via.