L'istruzione While in Javascript

Nel linguaggio Javascript l'istruzione While mi consente di realizzare un ciclo condizionato.

La sintassi dell'istruzione While è la seguente:

while ( condizione ) {
// blocco di istruzioni
}

Tra le parentesi tonde è posta la condizione del ciclo.

Fin quando la condizione è soddisfatta lo script esegue la sequenza delle istruzioni poste tra le parentesi graffe ( blocco di istruzioni ).

Quando la condizione non è più soddisfatta ( evento ) lo script conclude il ciclo.

Se la condizione è falsa fin dall'inizio, la struttura while non esegue nemmeno un'iterazione.

Cos'è un ciclo condizionato? Si tratta di un blocco di istruzioni che viene eseguito più volte ( ciclo ) finché non si verifica un particolare evento ( condizione ). Quando l'evento di verifica, il ciclo si conclude e lo script passa all'istruzione successiva. Questa struttura ciclica è detta loop. Non è possibile conoscere in anticipo il numero dei cicli, ossia il numero di volte che il blocco di istruzioni è eseguito, poiché è vincolato al presentarsi di un evento.

Un esempio pratico

Nella prima riga assegno alla variabile var il valore zero.

Nella seconda riga inizia il ciclo condizionato.

var=0;
while (var<10)
{
var=var+1;
document.write(" var ");
}
document.write(" fine ");

In questo script la condizione di reiterazione è l'espressione ( var<10 ). Fin quando è vera, il ciclo continua a girare.

  • Se la variabile var è minore di 10 il ciclo continua a girare. Una volta concluso un'iterazione, ne comincia subito un'altra. A ogni iterazione la variabile var viene incrementata di uno e viene stampato a video il suo valore attuale.
  • Quando la variabile var assume il valore 10 si verifica l'evento di chiusura del ciclo. La condizione ( var<10 ) non è più soddisfatta, lo script esce dal ciclo ed esegue l'istruzione successiva.

Il risultato finale sullo schermo del browser è il seguente:

0 1 2 3 4 5 6 7 8 9 Fine

Nota. L'ultima istruzione visualizza sullo schermo la parola "Fine". Essendo un'istruzione al di fuori della struttura ciclica, viene eseguita una sola volta.

Esempio 2

Posso usare la struttura iterativa while anche come iteratore per leggere tutti gli elementi di un array

var i=0;
var nomearray = new Array(1, 2, 3);
while(i<nomearray.length) {
document.write(nomearray[i]);
i++;
}

In questo caso l'array è composto solo da tre elementi.

Quindi l'output dello script è semplicemente

123

Il caso del loop infinito e l'uscita forzata. Una struttura ciclica potrebbe restare aperta all'infinito se l'evento non si presenta. Diventa un loop infinito. E' una situazione da evitare perché blocca lo script in eterno e consuma inutilmente un'enorme quantità di risorse del computer. Per questa ragione è utile programmare anche un'uscita forzata dopo N cicli che conclude il loop anche se l'evento di chiusura non si è ancora verificato.

L'istruzione BREAK

L'istruzione break interrompe l'esecuzione del ciclo e passa il controllo alla prima istruzione dopo la struttura ciclica.

var i = 0;
while (i<7) {
i++;
if (i==5) break;
document.write(i);
}
document.write("fine")

L'esecuzione dello script non viene interrotta.

Quando lo script incontra l'istruzione break esce dal ciclo.

1234fine

La prima istruzione dopo il ciclo è l'istruzione di stampa document.write("fine").

L'istruzione CONTINUE

L'istruzione continue termina l'esecuzione dell'iterazione del ciclo per iniziare l'iterazione successiva.

var i = 0;
while (i<7) {
i++;
if (i==5) continue;
document.write(i);
}
document.write("fine");

In questo caso il ciclo non viene interrotto ma solo l'iterazione corrente.

Il risultato sullo schermo è il seguente:

123467fine

Il numero 5 non viene stampato perché la quinta iterazione viene interrotta prima dell'istruzione di stampa document.write(i).

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Javascript

Le strutture di controllo

Gestione degli errori ed eccezioni

Le strutture cicliche

FAQ