Switch-satser i Java
Svep för att visa menyn
Hittills har if, else och else if varit de huvudsakliga verktygen för att hantera olika situationer. Det fungerar utmärkt för att kontrollera villkor, intervall eller jämförelser.
Men ibland jämför vi inte intervall alls — vi vill bara kontrollera en variabel mot flera exakta värden. Till exempel:
- en kund väljer en betalningsmetod;
- en kaffeorder har en specifik upphämtningstyp;
- en lojalitetsmedlem väljer en belöningsnivå.
Det är här switch-satser blir användbara — de jämför ett värde mot flera exakta matchningar på ett mer strukturerat och organiserat sätt.
Struktur
switch (variable) {
case "value1" -> {
// code
}
case "value2" -> {
// code
}
default -> {
// fallback code
}
}
Java kontrollerar varje case en efter en tills den hittar en matchning.
Exempel
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 kontrollerar pickupType fall för fall — "pickup" matchar inte, "delivery" gör det, så den skriver ut "Your coffee is on the way" och break stoppar omedelbart switch-satsen. default-blocket längst ner fungerar som en sista else — det körs bara om inget av fallen matchar.
Java 14+ — Ny switch-syntax
I Java 14 och senare introducerades en nyare syntax med hjälp av ->-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");
}
Vad som har ändrats:
- inget
breakbehövs; - använder
->istället för:; - varje fall är automatiskt isolerat — ingen risk för fall-through;
- renare och lättare att läsa.
Båda versionerna fungerar likadant — den nya syntaxen är bara mer modern och säkrare.
En bra tumregel att komma ihåg:
- Använd
if/else ifför jämförelser och intervall; - Använd
switchnär du kontrollerar ett värde mot många exakta alternativ;
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal