If...else



L'espressione base del controllo di flusso è:

if (<espressione>) <istruzione>|{<blocco di istruzioni>}
[else <istruzione>|{<blocco di istruzioni>}]

dove l'espressione è booleana, cioè può assumere i valori true o false. L'istruzione principale può essere seguita dall'else che indica un'istruzione alternativa da eseguire quando la prima non è verificata.

Se occorre effettuare una serie di test si può iterare l'else in questo modo:

if (<espressione>) {<istruzione>}
else (<espressione>) {istruzione}
else (<espressione>) {istruzione}
else (espressione) {istruzione}
else <istruzione>;

per cui si valuta l'espressione accanto all'else e viene eseguita se l'espressione è vera, altrimenti si esegue il blocco di istruzioni dell'ultimo else.

Alternativa a questa disposizione e l'istruzione switch. La forma sintattica è:

switch (<espressione>) {
  case <costante1>: <istruzioni>
  break;
  case <costante2>: <istruzioni>
  break;
  ...
  default <istruzioni>
}

Il valore dell'espressione viene confrontato con i diversi valori dei case e quando viene trovata corrispondenza, si esegue l'istruzione o le sequenze di istruzioni associati, anche se al case è associato uno statement vuoto oppure un'ulteriore switch. L'istruzione di default è opzionale e viene eseguita solo se non è trovata corrispondenza. L'istruzione break opzionale in quanto consente solo al programma di uscire dal ciclo di switch, se fosse mancante il programma continuerebbe a confrontare il valore.

Molto valida è anche l'espressione condizionale ternaria che fonde l'if...else in un unico comando che è il ? conosciuto anche come operatore ternario. La sua forma è (fare attenzione ai due punti):

<espressione1> ? <espressione2> : <Espressione3>

per cui se è vera la prima espressione viene eseguita la seconda, se falsa viene eseguita la terza. Si noti l'esempio:

"Ho trovato", counter, (counter==1)?"parola.":"parole."

per cui se counter è maggiore di 1 ad invece che "parola" verrà stampato "parole"

Un esempio molto elegante di operatore ternario è quello che serve a determinare il browser utilizzato:

ie = document.all?1:0
n = document.layers?1:0

le espressioni vanno lette così: Explorer sa interpretare il comando document.all, Netscape sa interpretare document.layers e non viceversa per cui se il browser interpreta il comando allora sarà la variabile ie oppure n uguale ad 1.

Ultimi articoli JavaScript

PhantomJS, headless browser per test con Javascript

Il tool ideale per realizzare, da terminale, operazioni in remoto su...

Creare e leggere QR Code in JavaScript

Applicazioni 'QR Code enabled' per il Web e per il mobile,...

Jquery UI Map: web-mapping con Google Maps e jQuery

Un plugin di jQuery UI per intefacciare applicaizoni Web/mobile con...

Scrollorama e Scrolldeck, slideshow d'effetto con jQuery

Plugin jQuery per ottenere Slideshow con diversi effetti di scrolling

jCanvas, un primo semplice grafico

Alla scoperta della libreria jCanvas, per semplificare il disegno e...

Altri articoli

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida Javascript: tecniche avanzate

Una guida dal taglio pratico per approfondire la programmazione a...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti