Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Switch-satser i Java | Operatorer och Villkor
Introduktion till Java

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

Main.java

1234567891011121314151617181920212223242526
package 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 break behö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 if för jämförelser och intervall;
  • Använd switch när du kontrollerar ett värde mot många exakta alternativ;
question mark

Vad är syftet med break-satsen i en switch?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 6

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 3. Kapitel 6
some-alt