Lezioni del modulo (2/2)
Controllo del flusso
Per rendere i nostri programmi dinamici e in grado di prendere decisioni, utilizziamo le strutture di controllo del flusso: le istruzioni condizionali e i cicli.
Condizionali: if, else if ed else
L'istruzione if esegue un blocco di codice solo se una determinata condizione booleana è vera.
int temperature = 25;
if (temperature > 30) {
System.out.println("Fa molto caldo!");
} else if (temperature >= 20) {
System.out.println("Il clima è piacevole.");
} else {
System.out.println("Fa freddo.");
}
Operatori Logici
Possiamo combinare più condizioni usando gli operatori logici:
&&(AND): Ritornatruese entrambe le condizioni sono vere.||(OR): Ritornatruese almeno una delle condizioni è vera.!(NOT): Inverte il valore logico della condizione.
boolean hasLicense = true;
boolean hasCar = false;
if (hasLicense && hasCar) {
System.out.println("Puoi guidare.");
}
I Cicli: while e for
I cicli consentono di eseguire ripetutamente un blocco di codice.
Il Ciclo while
Esegue il codice finché la condizione specificata rimane true.
int count = 1;
while (count <= 3) {
System.out.println("Conteggio: " + count);
count++; // Incrementa count di 1
}
Il Ciclo for
Ideale quando conosciamo in anticipo il numero di iterazioni da compiere. La sintassi richiede l'inizializzazione, la condizione di permanenza e l'espressione di incremento.
for (int i = 0; i < 5; i++) {
System.out.println("Iterazione: " + i);
}
Condizionali Avanzati: lo switch
Quando dobbiamo confrontare una singola variabile con molteplici valori costanti, l'istruzione switch rende il codice molto più pulito rispetto a molti if-else concatenati.
int dayOfWeek = 3;
switch (dayOfWeek) {
case 1:
System.out.println("Lunedì");
break;
case 2:
System.out.println("Martedì");
break;
case 3:
System.out.println("Mercoledì");
break;
default:
System.out.println("Altro giorno");
}
Controllo dei Cicli: break e continue
Possiamo alterare il normale flusso di un ciclo usando due istruzioni speciali:
break: interrompe immediatamente l'esecuzione del ciclo più interno, uscendo da esso.continue: salta il resto del codice nell'iterazione corrente e passa direttamente alla verifica della condizione successiva (o all'incremento nel ciclofor).
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // Salta la stampa per il numero 3
}
System.out.println(i);
}
Prova tu
Completa il codice verificando la variabile score: se è maggiore o uguale a 60 stampa Pass, altrimenti stampa Fail.
Mostra suggerimento
Usa `if (score >= 60) { ... } else { ... }` e stampa la stringa esatta richiesta.
Soluzione disponibile dopo 3 tentativi
Scrivi un ciclo for per stampare a schermo i numeri da 1 a 5 (inclusi) su righe separate.
Mostra suggerimento
Usa l'inizializzazione `int i = 1`, la condizione `i <= 5` e l'incremento `i++` all'interno dell'intestazione del ciclo `for`.
Soluzione disponibile dopo 3 tentativi
Completa il codice usando un ciclo while per stampare a schermo i numeri da 3 a 1 (inclusi) in ordine decrescente su righe separate.
Mostra suggerimento
Scrivi `while (count >= 1) { ... }` stampando `count` e poi decrementandolo con `count--;`.
Soluzione disponibile dopo 3 tentativi