Contenuto principale
Programmazione
Corso: Programmazione > Unità 1
Lesson 12: CicliRipasso: Cicli
Questo è un ripasso di ciò che abbiamo visto nel tutorial sui cicli.
Quando scriviamo i programmi, spesso ci rendiamo conto che vogliamo ripetere una parte di codice più volte oppure ripeterla ma cambiare ogni volta qualcosa. Per evitare di dover scrivere tutto in modo ripetitivo, possiamo usare un ciclo. JavaScript ha due tipi di cicli: while loop e for loop.
Un ciclo while è un modo di ripetere una parte di codice fino a quando una condizione sarà falsa. Ad esempio, questo ciclo while mostrerà il valore di y in (30, y) fino a quando y sarà minore di 400. Il ciclo aggiunge 20 a y ogni volta che viene eseguito, perciò y inizia in 40 ma poi aumenta diventando 60, 80, 100, 120, eccetera.
var y = 40;
while (y < 400) {
text(y, 30, y);
y += 20;
}
È importante che la condizione nelle parentesi diventi falsa prima o poi, altrimenti avremo ciò che si chiama ciclo infinito! È quello che succederebbe se rimuovessimo
y += 20
, perché y sarebbe sempre 40, quindi sarebbe sempre minore di 400, e il programma non saprebbe mai quando smettere.var y = 40;
while (y < 400) {
text(y, 30, y);
}
Il ciclo for è simile al ciclo while, ma con una sintassi più particolare. I programmatori hanno inventato il ciclo for quando hanno capito che facevano sempre le stesse tre cose: creare una variabile contatore per il ciclo (come la y qui sopra), incrementarla di una qualche quantità e verificare che fosse minore di un certo valore. La sintassi di un ciclo for prevede dei posti speciali per ciascuna di queste tre cose. Ecco lo stesso ciclo while che avevamo sopra, ma scritto come ciclo for:
for (var y = 40; y < 400; y += 20) {
text(y, 30, y);
}
I cicli possono essere anche annidati. In realtà è molto comune annidare i cicli, specialmente per i disegni 2-d, perché rende più facile disegnare forme come le griglie. Quando vogliamo annidare un ciclo dentro un ciclo, stiamo dicendo al programma: "fai questa cosa per X volte, e ogni volta che lo fai, fai anche quest'altra cosa per Y volte." Pensa a come potresti disegnare una griglia: vogliamo dire al programma: "crea una colonna 10 volte, e per ciascuna colonna, crea anche 15 celle dentro di essa." Ecco come potresti usare dei cicli for annidati per ottenere questo risultato:
for (var col = 0; col < 10; col++) {
for (var row = 0; row < 15; row++) {
rect(col*20, row*20, 20, 20);
}
}
Quando dovresti utilizzare un ciclo for e quando ciclo while? Sta a te. Molti programmatori preferiscono i cicli for perché è più difficile creare accidentalmente un ciclo infinito (perché è più difficile dimenticare di incrementare la variabile contatore), ma a volte un ciclo while potrebbe avere più senso. Provali entrambi!
Vuoi unirti alla conversazione?
Ancora nessun post.