Cicli for() e while()

Per una serie di motivi che scopriremo nel corso di questa lezione, nonchè nelle successive, può nascere l'esigenza di dover ripetere una serie di istruzioni un determinato numero di volte, o finchè non si verifichi una data condizione.

Questi i casi dei cicli for() e while() che passeremo subito in esame, ad iniziare dal primo.


Cicli for()

Un ciclo for() serve a ripetere una serie di istruzioni un determinato numero di volte, si imposta un contatore, in genere i e lo si imposta uguale a zero, poi lo si reimposta come minore del numero di volte che si vuole che l'operazione venga eseguita, in fine lo si incrementa.

La dichiarazione di i come variabile è opzionale, ma le buone norme di programmazione, ormai ipercitate, gradiscono che venga dichiarato.

La sintassi è la seguente:

var i;
    for(i=0; i<3; i++) {
        //Istruzioni Javascript da ripetere 3 volte
    }

Ipotizziamo di voler ripetere la scritta Hello World! per tre volte a video con l'utilizzo del document.write() includendolo in un ciclo for() Ipotizziamo di voler ripetere la scritta Hello World! per tre volte a video con l'utilizzo del document.write() includendolo in un ciclo for()

var i;
var messaggio = "Hello World!"
    for(i=0; i<3; i++) {
        document.write(messaggio + "<br>");
    }

Lo stesso vale nel caso in cui vogliamo creare un contatore con una serie di alert che portano il conteggio da 1 a 10, leggendo l'incremento della variabile di tipo "contatore" i

var i;
    for(i=1; i<11; i++) {
        alert(i);
    }

Ritroveremo i cicli for() tra due lezioni, dopo aver parlato degli Array().


Cicli while()

A differenza dei cicli for(), i cicli while() prevedono una certa condizione o evento a finchè il ciclo si interrompa.

Tra le parentesi passiamo i parametri per il rispetto o meno di una certa condizione, vediamo la sintassi:

while(condizione) {
    //Istruzioni
}

Si provi ad implementare questo script:

var messaggio = "Hello World!";
    while(!document.EOF) {
        document.write(messaggio + "<br>");
    }

La proprietà EOF dell'oggetto document è l'acronimo di End Of File, ovvero abbiamo scritto (diverso !) finchè non finisce il file, cicla il messaggio.

Col Javascript apparirà un alert() di avviso che chiede di interrompere lo script, essendo uno script eseguito direttamente in locale, si attiverà questo controllo per la sicurezza.

Proviamo uno script che abbia un fine più pratico, almeno in applicazioni client-side:

var password = "lukeonweb";
var login;
    while (login != password) {
        login = window.prompt("Inserisci la password","");
    }
    location.href = "http://www.lucaruggiero.it";

Questo codice serve ad aprire al caricamento di una pagina un prompt (finestra con richiesta di inserimento dati) che richiede l'immissione di una password, finchè la password non sarà stata scritta, il ciclo rimarrà in esecuzione, chiedendo tramite il prompt di inserire la password., una volta inserita la password, si viene reindirizzati alla pagina da visitare.

Autore: Luca Ruggiero