I Cicli While e do...while in Javascript
Il Ciclo While
Il ciclo while in JavaScript è simile alle istruzioni condizionali (sono blocchi di codice che verranno eseguiti se una condizione specificata risulta vera).
A differenza di un'istruzione if, che valuta solo una volta, un ciclo verrà eseguito più volte finché la condizione non restituisce più true.
A differenza del ciclo for, while non ha bisogno di sapere quante volte dovrà essere quante volte il loop dovrà essere eseguito (perchè è basato su condizioni)
In JavaScript, un'istruzione while è un ciclo che viene eseguito infinite volte finché la condizione specificata restituisce true.
Il ciclo while viene usato quando il numero di iterazioni non è conosciuto.
Il Ciclo do...while
Il Ciclo do...while è molto simile al ciclo while, con l'unica differenza che viene eseguito almeno una volta
In pratica, mentre
- while viene eseguito SOLO e finchè la condizione è vera.
- do..while viene eseguito ALMENO una volta (anche se la condizione non è vera.) e finchè la condizione è vera.
Sintassi dei cicli while e do..while
Sintassi del ciclo While
// ciclo while
while (condizione) {
// esegui codice finchè la condizione è vera
};
Sintassi del ciclo do..While
//ciclo do...while
do {
// esegui codice una sola volta
}while (condizione)
Esempio dell'oggetto Date() in Javascript
testo di esempio .testo di esempio .testo di esempio .testo di esempio .testo di esempio .
testo di esempio .testo di esempio .testo di esempio .testo di esempio .testo di esempio .
testo di esempio .testo di esempio .testo di esempio .testo di esempio .testo di esempio .
Codice della lezione: L'oggetto Date in Javascript
/* supponiamo di avere un'aereo con una capienza di 10 persone.
Per ogni iterazione del ciclo, aggiungeremo una persona.
Una volta che l'aereo ha 10 persone, verrà raggiunto
il limite di popolazione e il programma cesserà di aggiungere persone.
*/
// Imposta il limite di persone che possono entrare nell'aereo
const limiteAereo = 10;
// Inizia con 0 persone
let persone = 0;
let paragrafo = "<p>";
// Inizializza il loop while e avvialo finchè non raggiunge il limite.
while (persone < limiteAereo) {
// aggiungi una persona ad ogni iterazione
persone++;
paragrafo += "L'aereo ha ancora altri " + (limiteAereo - persone) + " posti disponibili.";
paragrafo += '</p>';
};
document.getElementById('aereoesempio').innerHTML = paragrafo;
//while (una volta raggiunta la condizione, si ferma)
let i = 0;
while(i < 15) {
document.getElementById('txtID1').innerHTML = (i++)
};
// While è utile nei momenti in cui non si sà quante iterazioni puoi avere.
// Se ad esempio abbiamo 100 iterazioni, è meglio usare il ciclo for, perchè sai che sono 100
//esempio: prendiamo un testo casuale e cambiamo tutte le lettere "o" in "K".
let testo = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.";
// variabile creata per contare il numero di iterazioni
let iterazioni = 1;
// in questo caso, non sappiamo quante lettere "o" ci siano e quindi non sappiamo quante iterazioni verranno eseguite
while(testo.indexOf('o') >= 0) {
// il metodo indexOf (delle stringhe) che riporta l'indice in cui trova la lettera "o".
//quindi con questo metodo "testo.indexOf('o') >= 0" stiamo dicendo:
cercami tutte le "o" partendo dall'indice 0. Quando questo metodo non trova
più la lettera "o" all'interno della variabile testo ritorna a -1 e quindi
restituisce falso e interrompe.
testo = testo.replace('o','#');
// con questo invece stiamo dicendo, ogni volta che trovi una "o" sostituiscimela con una K.
Questo però senza il ciclo while, verrebbe ripetuto solo una volta,
quindi senza WHILE cambieremo solo la prima lettera.
//conta il numero di iterazioni
console.log(iterazioni++)
};
// output in txtID2
document.getElementById('txtID2').innerHTML = testo;