Casi con più label
Raggruppi più label
Casi con più label è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.
Raggruppare le etichette
Spesso più valori devono attivare la stessa azione. switch moderno consente di elencare più etichette nello stesso case, separandole con virgole, e di farle condividere un unico ramo.
Etichette separate da virgole
Scriva i valori uno dopo l'altro, separati da virgole, prima di ->. Se uno qualsiasi di essi corrisponde, il ramo viene eseguito.
public class Main {
public static void main(String[] args) {
int day = 7;
switch (day) {
case 1, 2, 3, 4, 5 -> System.out.println("Weekday");
case 6, 7 -> System.out.println("Weekend");
}
}
}Rilevare le vocali
Un impiego classico consiste nel raggruppare tutte le vocali in un unico ramo invece di scrivere cinque case separati.
public class Main {
public static void main(String[] args) {
char c = 'o';
switch (c) {
case 'a', 'e', 'i', 'o', 'u' -> System.out.println("Vowel");
default -> System.out.println("Consonant");
}
}
}Più etichette nelle espressioni
I case con più etichette funzionano anche nelle espressioni switch e restituiscono lo stesso valore per ciascuna delle etichette elencate.
public class Main {
public static void main(String[] args) {
int month = 7;
String season = switch (month) {
case 12, 1, 2 -> "Winter";
case 3, 4, 5 -> "Spring";
case 6, 7, 8 -> "Summer";
default -> "Autumn";
};
System.out.println(season);
}
}Raggruppare le etichette String
È possibile raggruppare anche i valori String. Qui diverse grafie di un comando vengono associate a un'unica azione.
public class Main {
public static void main(String[] args) {
String cmd = "quit";
switch (cmd) {
case "quit", "exit", "q" -> System.out.println("Closing");
case "help", "h" -> System.out.println("Showing help");
default -> System.out.println("Unknown command");
}
}
}Raggruppare le etichette degli enum
Anche le costanti enum possono condividere un ramo, mantenendo compatta la logica delle categorie.
public class Main {
enum Day { MON, TUE, WED, THU, FRI, SAT, SUN }
public static void main(String[] args) {
Day d = Day.SAT;
String kind = switch (d) {
case SAT, SUN -> "Rest";
default -> "Work";
};
System.out.println(kind);
}
}Nessuna etichetta duplicata
Ogni etichetta può comparire una sola volta nell'intero switch. Elencare lo stesso valore in due rami causa un errore di compilazione, perché il compilatore non saprebbe quale ramo eseguire.
public class Main {
public static void main(String[] args) {
int n = 2;
switch (n) {
case 1, 2 -> System.out.println("Low");
case 3, 4 -> System.out.println("High");
default -> System.out.println("Other");
}
}
}Confronto con il vecchio fall-through
Nel vecchio stile con i due punti, per raggruppare i casi era necessario disporre case vuoti in sequenza sopra un unico corpo condiviso. La sintassi con le virgole è molto più chiara ed evita il fall-through accidentale.
public class Main {
public static void main(String[] args) {
int code = 3;
switch (code) {
case 1, 3, 5, 7, 9 -> System.out.println("Odd");
case 0, 2, 4, 6, 8 -> System.out.println("Even");
}
}
}Raggruppare con i blocchi
Un case raggruppato può usare anche un corpo a blocco. Qualsiasi etichetta corrispondente esegue l'intero blocco.
public class Main {
public static void main(String[] args) {
char grade = 'B';
switch (grade) {
case 'A', 'B' -> {
System.out.println("Pass");
System.out.println("Well done");
}
default -> System.out.println("Try again");
}
}
}Combinare con yield
Le etichette raggruppate e yield funzionano insieme quando un ramo condiviso richiede un calcolo.
public class Main {
public static void main(String[] args) {
int n = 4;
int points = switch (n) {
case 1, 2, 3 -> 10;
case 4, 5, 6 -> {
int bonus = n * 2;
yield 20 + bonus;
}
default -> 0;
};
System.out.println(points);
}
}Un vantaggio per la leggibilità
I case con più etichette riducono lunghi elenchi di rami ripetitivi a pochi gruppi chiari, rendendo evidente l'intento a colpo d'occhio.
public class Main {
public static void main(String[] args) {
int http = 204;
String group = switch (http / 100) {
case 1, 2, 3 -> "OK-ish";
case 4, 5 -> "Error";
default -> "Unknown";
};
System.out.println(group);
}
}Verifica rapida
Come si fa a eseguire lo stesso ramo di switch per più valori in Java moderno?
Riepilogo
Ha imparato a usare i case con più etichette:
- Elenca i valori separati da virgole prima di
-> - Funziona con int, char, String ed enum
- Nessun fall-through accidentale, a differenza del vecchio stile
- Ogni etichetta può comparire una sola volta
- Combina blocchi e
yieldquando necessario
Domande Frequenti
La lezione «Casi con più label» è gratuita?
Sì — il testo completo di «Casi con più label» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.
Cosa imparerò in «Casi con più label»?
Raggruppi più label Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Casi con più label»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- switch in stile arrow
- switch come espressione
- La keyword yield
- Casi con più label