04 - Gestire il Flusso Cicli
Impara a ripete il codice efficientemente usando i cicli in Java
I cicli permettono la ripetizione di codice senza doverlo scrivere più volte. Sono essenziali per elaborare collezioni, generare mondi e aggiornare oggetti di gioco.
Ciclo While
Ripeti il codice mentre una condizione è vera:
int contoAllaRovescia = 5;
while (contoAllaRovescia > 0) {
System.out.println(contoAllaRovescia);
contoAllaRovescia--;
}
System.out.println("Decollo!");Struttura
while (condizione) {
// codice da ripetere
}Assicurati sempre che la condizione del ciclo diventi falsa, o il tuo programma verrà eseguito per sempre!
int x = 0;
while (x < 10) {
System.out.println("Bloccato!");
// Hai dimenticato di incrementare x!
}Ciclo Do-While
Come un ciclo while, ma viene eseguito sempre almeno una volta:
int vita = 0;
do {
System.out.println("Tento di rianimarti...");
vita = 100;
} while (vita <= 0);Ciclo For
Ottimo quando sai quante volte devi ripetere:
for (int i = 1; i <= 5; i++) {
System.out.println("Livello " + i);
}Struttura
for (inizializzazione; condizione; aggiornamento) {
// codice da ripetere
}for (int i = 0; i < 10; i++) {
// ^ ^ ^
// Inizio Fine Step
}- Inizializzazione: int i = 0 - Viene eseguito una volta all'inizio
- Condizione: i < 10 - Verificata prima di ogni ciclo
- Aggiornamento: i++ - Eseguito dopo ogni loop
Istruzione Break
Puoi uscire anticipatamente da un ciclo con break:
for (int i = 1; i <= 10; i++) {
if (i == 6) {
break; // Esce dal loop quando i è 6
}
System.out.println(i);
}Istruzione Continua
Salta alla prossima iterazione con continue:
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // Salta i numeri pari
}
System.out.println(i); // Stampa solo i numeri dispari
}Cicli Annidati
Puoi inserire i cicli all'interno di altri cicli.
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 2; j++) {
System.out.println("i: " + i + ", j: " + j);
}
}Fai attenzione con i cicli annidati! Possono rallentare la tua mod in modo significativo.
// Questo viene eseguito 1.000.000 di volte!
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
//Codice qui
}
}Evita di annidare troppi cicli quando devi elaborare grandi quantità di dati.