This article has been localized into Italian by the community.
Cicli: for e while
Abbiamo giusto parlato delle condizioni if, una parte integrante dei linguaggi di programmazione. Quasi in maniera uguale sono i cicli: L'abilità di iterare lo stesso blocco di codice multiple volte, con la diretta possibilità di controllare direttamente il numero delle iterazioni.
In JavaScript, ci sono attualmente due tipi di strutture cicli. Il ciclo "for" e il ciclo "while". Questi hanno entrambi delle variazioni, e questo articolo andrà a vedere in profondità come questi lavorano e come puoi usarli.
Il ciclo while
Il più semplice tipo di ciclo con cui iniziare è il ciclo while. Questo ha una sintassi molto semplice:
while(somethingIsTrue)
{
DoStuff();
}
Allora, finche la condizione racchiuse tra le parentesi viene valutata vera, il blocco di codice seguente è ripetuto di nuovo. Questo richiede che tu faccia qualcosa dentro il blocco di codice che permetta che l'interprete esca dal ciclo - se non è così, tu staresti creando un ciclo chiamato senza fine, che impedirà al tuo codice di terminare!
Un esempio della vita vera di un ciclo while si può vedere come questo:
let counter = 1;
while(counter <= 10)
{
document.write(counter);
counter = counter + 1;
}
Continuerà ad eseguirsi finche la variabile "counter" non è più grande di 10, e per ogni iterazione, noi stampiamo il numero E incrementiamo la variabile counter. Specialmente l'ultima parte è importante, perche senza questa, "counter" non diventerà mai maggiore che 10 e il ciclo si eseguirà senza fine. Anche, come vedrai dopo, un ciclo "for" è attualmente una miglior scelta per questa task, ma ho bisogno di un semplice, diretto esempio per illustrare come funziona un ciclo while.
La variante do..while
Con in ciclo regolare while, come nell'esempio di sopra, la condizione viene valutata prima di entrare nel ciclo. Questo significa che noi attualmente potremmo non entrare in questo - se la condizione non è mai vera, il codice di blocco seguente non sarà mai eseguito. Se vuoi vedere questo da te stesso, semplicemente cambia il valore iniziale della variabile "counter" nell'esempio di sopra a 11 ed eseguilo di nuovo!
La variante do..while del ciclo while capovolta le cose - invece si valutare la condizione prima di eseguire il codice, valuta questo DOPO il codice del ciclo è stato eseguito. Questo assicura per lo meno una iterazione, la quale può essere utile in alcuni scenari. Ecco un esempio - nota come la while-part è stata mossa, chiaramente indicando l'ordine di come le cose sono fatte:
let counter = 11;
do
{
document.write(counter);
counter = counter + 1;
} while(counter <= 10);
In questo esempio, Io ho cambiato il ciclo while in un ciclo do..while, e allora ho cambiato il valore iniziale della variabile counter a 11. Se fosse stato un ciclo while regolare, il codice contenuto non sarebbe stato mai eseguito, ma dato che è un ciclo do..while, la condizione, che abbiamo assicurato verrà valutato come falso, è valutato DOPO la prima iterazione, garantendo così almeno un'esecuzione.
Il ciclo for
Una buona alternativa a il ciclo while è il ciclo for. Questo sembra un po' più complicato, ma questo perché è più flessibile è viene usato anche più frequentemente. Il ciclo loop funziona con la dichiarazione di un contatore, dopo una condizione per questo contatore e dopo un passo per il contatore(incrementarlo o diminuirlo) in ogni iterazione, tutto specificato in una unica riga - questo è il motivo per cui sembra complicato. Permettimi di illustrartelo con un esempio:
for(let counter = 1; counter <= 10; counter = counter + 1)
document.write(counter);
Qui abbiamo fatto la stessa cosa che abbiamo fatto con il primo ciclo while: Noi contiamo da 1 a 10. Ma come puoi vedere, questo richiede meno codice, perche il meccanismo del contatore basicamente viene costruito dentro il ciclo for. Nella prima linea, noi abbiamo istruito l'interprete a fare lo seguente, con ogni istruzione separata da un punto e virgola:
- Noi dichiariamo una variabile chiamata contatore e assegnarli il valore 1 a questa
- Noi specifichiamo che questo ciclo dovrà eseguirsi finche la variabile contatore è minora a o uguale a 10
- Noi specifichiamo che in ogni iterazione, la variabile contatore dovrà essere aumentata da uno
Sono stato intenzionalmente loquace in questo esempio, ad usare un nome di variabile lungo e non un operatore d'incremento (più di questo lo vedremmo dopo). Un esempio più della vita vera si vedrebbe così:
for(let i = 1; i <= 10; i++)
document.write(i);
Davvero figo cosa possiamo compiere con così poco codice, vero?
Nota come in questo esempio di un ciclo for è estremamente similare al nostro ciclo while dei prima. Questo è anche perche il ciclo for è non eseguito nella sequenza esatta che il codice implica. Tu potresti aspettare che queste tre parti della prima linea viene eseguito per prima, e dopo il codice del ciclo, ma non è il caso. Invece, il ciclo for viene processato così:
- La variabile è dichiarata
- La condizione è verificata, significa che se la condizione fallisce nel primo tentativo, nessuna iterazione sarà eseguita
- Se la condizione ha successo, il codice del ciclo (in questo caso, il nostro docuemnt.write()) è eseguito
- Il passo (i++), l'ultima parte del ciclo, viene eseguita
Questo può sembrare un po' confuso all'inizio, non preoccuparti, ti abituerai a questo!
Variazioni del ciclo for
Come ultima nota sul ciclo for, Voglio mostrarti che questo è più personalizzabile di quanto puoi aspettarti: Tu puoi lasciare fuori parti di questo (tutte le parti, di fatto, ma questo risulterà in un ciclo senza fine), e sei in completo controllo della parte del passo, significa che tu puoi aumentare o diminuire questo di 1 o un altro numero positivo per ogni iterazione. Ecco un esempio:
let counter = 2;
for(; counter <= 10;)
{
document.write(counter);
counter = counter + 2;
}
So che può sembrare strano, ma lasciami condurti attraverso questo:
- Non viene dichiarata nessuna variabile nel ciclo for , noi facciamo questo prima del ciclo. Anche se, il ciclo richiede 3 parti, allora semplicemente inseriamo un punto e virgola, questo ci mostra che non abbiamo bisogno di dichiarare una variabile ciclo
- La condizione è la stessa di prima
- Ma noi anche lasciamo vuota la parte del passo
- Invece, noi lavoriamo direttamente con la variabile contatore dentro il ciclo for, incrementando questo di 2 invece di 1, per ogni iterazione
Il risultato è una lista di numeri pari da 2 a 10. Adesso, questo è principalmente per mostrarti la flessibilità del ciclo for - tu probabilmente non lo userai molto, in comparazione come la versione comune che ti ho mostrato prima.
Controllare il ciclo: break e continue
Talvolta ti troverai in situazioni in cui dovrai prendere più controllo nel ciclo while quando sei dentro questo. JavaScript ti viene incontro con due parole chiave che sono (maggiormente) usate esclusivamente per i cicli: break e continue. Vediamo cosa possono fare per te.
continue
La parola chiave continue può essere usata dentro un ciclo per istruire all'interprete di saltare il resto del codice dentro il ciclo e andare alla seguente iterazione. Questa usualmente è un risultato di un certo controllo interno presente nel ciclo. Ecco un semplice esempio che ti mostra come funziona:
for(let counter = 1; counter <= 10; counter++)
{
if(counter % 2 != 0)
continue;
document.write(counter);
}
Basicamente stiamo contando da 1 a 10, ma dentro del ciclo, noi verifichiamo se il contatore è uguale a un numero (usando l'operatore % (resto) - più su questo dopo), e se non è così, noi passiamo alla seguente iterazione con la parola continue. Questa permette di stampare solo numeri uguali, e mentre questo esempio da solo è inutile, tu troverai velocemente te stesso in una situazione dove l'abilità di passare all'inizio del ciclo e alla seguente iterazione. Se vuoi invece uscire completamente del ciclo?
break
Per uscire completamente di un ciclo prima del tempo, noi abbiamo la parola chiave break. Questa ti farà immediatamente uscire dal ciclo e dopo muoverti alle linee dopo il ciclo. Ecco un esempio:
for(let counter = 1; counter <= 10; counter++)
{
document.write(counter);
if(counter >= 5)
break;
}
document.write("Five is enough...");
Di nuovo, noi contiamo da 1 a 10, ma dentro il ciclo, noi all'improvviso decidiamo che solo vogliamo contare fino a 5, allora appena arriviamo questo numero, noi usciamo dal ciclo ed andiamo avanti.
E certamente, entrambe continue e break possono essere usate in un ciclo while, anche insieme - ecco un esempio che ti dimostra questo punto:
let counter = 0;
while(counter <= 20)
{
counter = counter + 1;
if(counter % 2 != 0)
continue;
document.write(counter);
if(counter >= 10)
break;
}
document.write("Ten is enough...");
Un riassunto veloce: Noi contiamo da 0 a 20, ma se il contatore non è uguale, noi passiamo alla seguente iterazione, e appena il contatore raggiunge 10, noi usciamo dal ciclo. Tutto questo solo per mostrarti una combinazione delle parole chiave continue e break dentro il ciclo while.
Riassunto
I cicli ti permettono di ripetere lo stesso codice più volte, ma con risultati diversi, come abbiamo visto negli esempi di questo articolo. Se usi il ciclo while o il for dipende della situazione in cui ti trovi, ma in molti casi, entrambi sono sono usabili e se usare l'uno o l'altro a volte dipende dal tuo gusto personale.