Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 33 di 49
  • livello principiante
Indice lezioni

Gli operatori logici

Come annidare più controlli condizionali dentro altri
Come annidare più controlli condizionali dentro altri
Link copiato negli appunti

È possibile annidare un if dentro l'altro, in modo da poter valutare anche situazioni particolarmente complesse. Ad esempio:

// provate a cambiare il valore, eventualmente
// indicando anche delle stringhe
valore = 5;

if (isNaN(valore) ) {

  /* isNaN() vuol dire "not a number" e serve per
   * vedere se il tipo di dati in esame è differente 
   * da un numero */
  alert(valore + " non è un numero!");
  
} else {

  if (valore >= 9) {
    alert(valore + " è maggiore o uguale a 9")   
  } else {
    alert(valore + " è minore di 9")
  }
}

Ma oltre ad utilizzare annidamenti particolarmente complessi, possiamo usare gli operatori logici per concatenare diverse espressioni e creare condizioni complesse.

La sintassi è questa:

( (<espressione 1>) <operatore logico> (<espressione 2>) )

dove (come abbiamo visto nelle precedenti lezioni) <espressione 1> ed <espressione 2> stanno per:

<valore1> <operatore relazionale> <valore 2>

Ad esempio:

x = 6;
if ( (x >= 5) && (x <= 7) ) {
  alert ("x è compresa tra 5 e 7"); 
}

In questo modo possiamo valutare più condizioni contemporaneamente. Gli operatori logici che utilizzerete maggiormente sono i seguenti:

Operatore Descrizione Esempio
&& "and logico"
Devono essere vere le espressioni a destra e sinistra dell’uguale.

x=6;
if ( (x>=5) && (x<=7) ){
alert ("x è compresa tra 5 e 7");
}

|| "or logico"
Deve essere l’espressione a sinistra dell’uguale o quella a destra

nome="Gianni";
if ( (nome=="Gianni") || (nome=="Marco") ) {
alert ("Sei Gianni oppure Marco");
}

! "not"
Viene posta di fronte all'espressione in questione e la nega:
- se è false la cambia in true
- se è true la cambia in false

nome="Marco";
if ( !(nome=="Marco")) {
alert ("Non sei Marco");
}

Gli operatori logici funzionano nel modo seguente:

  • viene esaminata l'espressione di sinistra (Questo significa che anche tutte le operazioni previste dall'espressione di sinistra sono eseguite prima)
  • se l'operatore è binario ("and" e "or" ad esempio) si passa ad esaminare l'espressione di destra.

    Nota: Se l'espressione di sinistra è sufficiente a determinare il risultato dell'operazione, quella di destra viene ignorata.

    Ad esempio: se l'operando è un or (||) e l'espressione di sinistra genera un true, non è necessario valutare anche l'espressione destra, perché il risultato sarà comunque true, se abbiamo un and (&&) invece, sarà ignorata l'espressione destra se a sinistra abbiamo già un false.

  • viene restituito il risultato

Avrete notato che la rappresentazione grafica di un operatore logico prevede il raddoppiamento del simbolo corrispondente (es: &&). Nel caso in cui vi dimentichiate di raddoppiare il simbolo (es: &), state in realtà utilizzando un operatore a livello di bit: il che non è scorretto, ma non sempre darà luogo allo stesso risultato.

Ti consigliamo anche