Javascript cicli while
23/09/2011Per parlare di cicli è necessario aver ben chiaro il concetto di contatore.
Generalmente un contatore vine utilizzato per contare quante volte viene ripetuto un ciclo.
Il contatore va inzializzato (generalmente a 0 o a 1, con l'istruzione nome-contatore = valore) e successivamente incrementato, ovvero deve aumentare il suo valore di una unità ogni volta che si ripete il ciclo:
contatore=1
inizio ciclo
contatore++
fine ciclo
In Javascript esistono le istruzioni WHILE (o controllo in testa) e DO WHILE (o controllo in coda): la costruzione di un ciclo serve a creare dei cicli iterativi, ovvero che iterano un'istruzione.
Ad esempio la forma completa dell'istruzione WHILE è:
while (condizione) {
istruzioni
}
quindi componendo i due elementi sopra descritti:
contatore=1
while (condizione) {
istruzioni
contatore++
}
WHILE esegue le istruzioni fino che l'espressione non risulta falsa.
Un esempio semplicissimo:
var contatore = 1; // inzializzo il contatore
var inserito = prompt("scrivere un numero",""); // dichiaro la variabile con un prompt per far inserire un numero
while (inserito != 17) { // definisco la condizione 'fino a che diverso da 17'
inserito = prompt("riprova a scrivere un numero",""); // se la condizione è vera, quindi il numero è sbagliato, chiedo di riprovare
contatore++; // incremento il contatore
}
alert("Giusto, il numero richiesto era 17!"); // trovato il numero esco dal ciclo e informo che è giusto
alert("Per indovinarlo hai provato " + contatore + " numeri"); // attraverso il valore del contatore stabilisco il numero di tentativi
l'istruzione DO WHILE funziona come WHILE ma l'espressione viene controllata alla fine del ciclo e non all'inizio.
Dunque il ciclo viene eseguito almeno una volta:
do {
istruzioni
} while (condizione)
L'esempio precedente diviene quindi:
var contatore = 0; // inzializzo il contatore
do { // apro il ciclo
inserito = prompt("scrivere un numero",""); // prompt per far inserire un numero
contatore++; // incremento contatore
} while(inserito != 17);// verifioc se la condizione viene rispettata
alert("Giusto, il numero richiesto era 17!"); // trovato il numero esco dal ciclo e informo che è giusto
alert("Per indovinarlo hai provato " + contatore + " numeri"); // attraverso il valore del contatore stabilisco il numero di tentativi
In questo caso, poiché la verifica della condizione avviene alla fine del ciclo il primo passaggio deve trovare il contatore impostato a 0!