Switch-sætninger i Java
Stryg for at vise menuen
Indtil nu har if, else og else if været de primære værktøjer til at håndtere forskellige situationer. Det fungerer godt til at kontrollere betingelser, intervaller eller sammenligninger.
Men nogle gange sammenligner vi slet ikke intervaller — vi vil blot tjekke én variabel mod flere præcise værdier. For eksempel:
- en kunde vælger en betalingsmetode;
- en kaffeordre har en bestemt afhentningstype;
- et loyalitetsmedlem vælger et belønningsniveau.
Her bliver switch-udsagn nyttige — de sammenligner én værdi med flere præcise match på en mere overskuelig og organiseret måde.
Struktur
switch (variable) {
case "value1" -> {
// code
}
case "value2" -> {
// code
}
default -> {
// fallback code
}
}
Java gennemgår hver case én for én, indtil der findes et match.
Eksempel
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 gennemgår pickupType sag for sag — "pickup" passer ikke, "delivery" gør, så den udskriver "Your coffee is on the way", og break stopper straks switchen. default-blokken nederst fungerer som en sidste else — den kører kun, hvis ingen af sagerne passer.
Java 14+ — Ny switch-syntaks
I Java 14 og nyere blev der introduceret en nyere syntaks med -> pilen:
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");
}
Hvad der er ændret:
- intet behov for
break; - bruger
->i stedet for:; - hver case er automatisk isoleret — ingen risiko for "fall-through";
- mere overskuelig og lettere at læse.
Begge versioner fungerer ens — den nye syntaks er blot mere moderne og sikker.
En god tommelfingerregel:
- Brug
if/else iftil sammenligninger og intervaller; - Brug
switchnår du tjekker én værdi mod mange præcise muligheder;
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Switch-sætninger i Java
Indtil nu har if, else og else if været de primære værktøjer til at håndtere forskellige situationer. Det fungerer godt til at kontrollere betingelser, intervaller eller sammenligninger.
Men nogle gange sammenligner vi slet ikke intervaller — vi vil blot tjekke én variabel mod flere præcise værdier. For eksempel:
- en kunde vælger en betalingsmetode;
- en kaffeordre har en bestemt afhentningstype;
- et loyalitetsmedlem vælger et belønningsniveau.
Her bliver switch-udsagn nyttige — de sammenligner én værdi med flere præcise match på en mere overskuelig og organiseret måde.
Struktur
switch (variable) {
case "value1" -> {
// code
}
case "value2" -> {
// code
}
default -> {
// fallback code
}
}
Java gennemgår hver case én for én, indtil der findes et match.
Eksempel
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 gennemgår pickupType sag for sag — "pickup" passer ikke, "delivery" gør, så den udskriver "Your coffee is on the way", og break stopper straks switchen. default-blokken nederst fungerer som en sidste else — den kører kun, hvis ingen af sagerne passer.
Java 14+ — Ny switch-syntaks
I Java 14 og nyere blev der introduceret en nyere syntaks med -> pilen:
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");
}
Hvad der er ændret:
- intet behov for
break; - bruger
->i stedet for:; - hver case er automatisk isoleret — ingen risiko for "fall-through";
- mere overskuelig og lettere at læse.
Begge versioner fungerer ens — den nye syntaks er blot mere moderne og sikker.
En god tommelfingerregel:
- Brug
if/else iftil sammenligninger og intervaller; - Brug
switchnår du tjekker én værdi mod mange præcise muligheder;
Tak for dine kommentarer!