Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Switch-sætninger i Java | Operatorer og Betingelser
Introduktion til Java

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

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 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 if til sammenligninger og intervaller;
  • Brug switch når du tjekker én værdi mod mange præcise muligheder;
question mark

Hvad er formålet med break-sætningen inde i en switch?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

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

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 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 if til sammenligninger og intervaller;
  • Brug switch når du tjekker én værdi mod mange præcise muligheder;
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 6
some-alt