- Comprendere la logica delle strutture iterative pre-condizionali
- Implementare algoritmi che richiedono la ripetizione di istruzioni
- Gestire correttamente l'aggiornamento della variabile di controllo per evitare loop infiniti
- Utilizzare il ciclo while per la validazione dell'input utente
Il ciclo while (mentre) è una struttura iterativa che permette di eseguire ripetutamente un blocco di codice fino a quando una specifica condizione risulta vera.
[Image of while loop flow chart]1.1 Sintassi e Funzionamento
A differenza dell'istruzione if, che esegue il codice una sola volta, il while torna a controllare la condizione dopo ogni esecuzione del blocco.
while (condizione) {
// Istruzioni da ripetere
// IMPORTANTE: Aggiornare la condizione!
}
1.2 I tre elementi fondamentali
Perché un ciclo funzioni correttamente e non diventi un loop infinito (mandando in blocco il computer), servono tre passaggi:
- Inizializzazione: Creare una variabile di controllo prima del ciclo.
- Condizione: Definire quando il ciclo deve fermarsi.
- Aggiornamento: Modificare la variabile di controllo all'interno del ciclo (es. incremento
++).
| Componente | Esempio | Rischio |
|---|---|---|
| Inizializzazione | int i = 0; | Variabile non dichiarata |
| Condizione | while (i < 10) | Condizione sempre vera (Loop infinito) |
| Aggiornamento | i++; | Dimenticanza (Il ciclo non finisce mai) |
LABORATORIO
Contatori e Validazione Dati
Utilizzeremo il ciclo while per creare un conto alla rovescia e per obbligare l'utente a inserire dati corretti.
- OnlineGDB.com (Linguaggio: Java)
1 Il Conto alla Rovescia
Scriviamo un programma che parta da un numero scelto dall'utente e arrivi a zero.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Da che numero vuoi partire? ");
int n = in.nextInt();
while (n >= 0) {
System.out.println("T-minus: " + n);
n--; // Decremento: fondamentale per finire il ciclo!
}
System.out.println("Lancio completato!");
in.close();
}
}
2 Esercitazione Guidata: Validazione Input
Il while è perfetto per impedire all'utente di proseguire se inserisce dati sbagliati. Ad esempio, chiediamo un voto finché non è compreso tra 1 e 10.
int voto = -1; // Inizializzazione fuori dal range
while (voto < 1 || voto > 10) {
System.out.print("Inserisci un voto valido (1-10): ");
voto = in.nextInt();
if (voto < 1 || voto > 10) {
System.out.println("Errore! Riprova.");
}
}
System.out.println("Hai inserito un voto corretto: " + voto);
3 Esercizio: Inventario Magazzino
Scenario: Un addetto al magazzino deve scaricare dei pacchi da un camion.
- Chiedete il numero totale di pacchi presenti sul camion (es: 10).
- Usate un ciclo while per simulare lo scarico di un pacco alla volta.
- Ad ogni ciclo, stampate: "Scarico pacco numero X... ne mancano Y".
- Il ciclo termina quando non ci sono più pacchi.