Istruzioni Switch in Java
Scorri per mostrare il menu
Finora, if, else ed else if sono stati gli strumenti principali per gestire situazioni diverse. Funzionano molto bene per verificare condizioni, intervalli o confronti.
Ma a volte non stiamo confrontando intervalli — vogliamo solo controllare una variabile rispetto a diversi valori esatti. Ad esempio:
- un cliente sceglie un metodo di pagamento;
- un ordine di caffè ha un tipo di ritiro specifico;
- un membro fedeltà seleziona un livello di premio.
In questi casi, le istruzioni switch sono utili — confrontano un valore con molteplici corrispondenze esatte in modo più chiaro e organizzato.
Struttura
switch (variable) {
case "value1" -> {
// code
}
case "value2" -> {
// code
}
default -> {
// fallback code
}
}
Java controlla ogni case uno per uno fino a trovare una corrispondenza.
Esempio
Main.java
1234567891011121314151617181920212223242526package com.example; public class Main { public static void main(String[] args) { String pickupType = "delivery"; switch (pickupType) { case "pickup": System.out.println("Your coffee will be ready at the counter"); break; case "delivery": System.out.println("Your coffee is on the way"); break; case "dine-in": System.out.println("Enjoy your coffee inside the cafe"); break; default: System.out.println("Unknown order type"); break; } } }
Java controlla pickupType caso per caso — "pickup" non corrisponde, "delivery" sì, quindi stampa "Your coffee is on the way" e il break interrompe immediatamente lo switch. Il blocco default in fondo funziona come un ultimo else — viene eseguito solo quando nessun caso corrisponde.
Java 14+ — Nuova sintassi dello switch
In Java 14 e versioni successive, è stata introdotta una nuova sintassi che utilizza la freccia ->:
switch (pickupType) {
case "pickup" -> System.out.println("Your coffee will be ready at the counter");
case "delivery" -> System.out.println("Your coffee is on the way");
case "dine-in" -> System.out.println("Enjoy your coffee inside the cafe");
default -> System.out.println("Unknown order type");
}
Cosa è cambiato:
- non è necessario il
break; - utilizza
->invece di:; - ogni caso è automaticamente isolato — nessun rischio di fall-through;
- sintassi più pulita e facile da leggere.
Entrambe le versioni funzionano allo stesso modo — la nuova sintassi è semplicemente più moderna e sicura.
Regola utile da ricordare:
- Usare
if/else ifper confronti e intervalli; - Usare
switchquando si controlla un valore rispetto a molte opzioni esatte;
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione