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

Switch-setninger i Java

Sveip for å vise menyen

Så langt har if, else og else if vært hovedverktøyene for å håndtere ulike situasjoner. Dette fungerer utmerket for å sjekke betingelser, intervaller eller sammenligninger.

Men noen ganger sammenligner vi ikke intervaller i det hele tatt — vi ønsker bare å sjekke én variabel mot flere eksakte verdier. For eksempel:

  • en kunde velger en betalingsmetode;
  • en kaffeordre har en spesifikk hentetype;
  • et lojalitetsmedlem velger et belønningsnivå.

Det er her switch-setninger blir nyttige — de sammenligner én verdi mot flere eksakte treff på en ryddigere og mer organisert måte.

Struktur

switch (variable) {
    case "value1" -> {
        // code
    }

    case "value2" -> {
        // code
    }

    default -> {
        // fallback code
    }
}

Java sjekker hver case én etter én til den finner et treff.

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 sjekker pickupType case for case — "pickup" stemmer ikke, "delivery" gjør det, så den skriver ut "Your coffee is on the way" og break stopper switchen umiddelbart. default-blokken nederst fungerer som en siste else — den kjøres bare hvis ingen av casene stemmer.

Java 14+ — Ny switch-syntaks

I Java 14 og nyere ble det introdusert en ny syntaks med ->-pil:

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");
}

Hva som er endret:

  • ikke behov for break;
  • bruker -> i stedet for :;
  • hver case er automatisk isolert — ingen risiko for fall-through;
  • ryddigere og lettere å lese.

Begge versjonene fungerer likt — den nye syntaksen er bare mer moderne og tryggere.

En god huskeregel:

  • Bruk if / else if for sammenligninger og intervaller;
  • Bruk switch når du sjekker én verdi mot flere eksakte alternativer;
question mark

Hva er hensikten med break-setningen inne i en switch?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Switch-setninger i Java

Så langt har if, else og else if vært hovedverktøyene for å håndtere ulike situasjoner. Dette fungerer utmerket for å sjekke betingelser, intervaller eller sammenligninger.

Men noen ganger sammenligner vi ikke intervaller i det hele tatt — vi ønsker bare å sjekke én variabel mot flere eksakte verdier. For eksempel:

  • en kunde velger en betalingsmetode;
  • en kaffeordre har en spesifikk hentetype;
  • et lojalitetsmedlem velger et belønningsnivå.

Det er her switch-setninger blir nyttige — de sammenligner én verdi mot flere eksakte treff på en ryddigere og mer organisert måte.

Struktur

switch (variable) {
    case "value1" -> {
        // code
    }

    case "value2" -> {
        // code
    }

    default -> {
        // fallback code
    }
}

Java sjekker hver case én etter én til den finner et treff.

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 sjekker pickupType case for case — "pickup" stemmer ikke, "delivery" gjør det, så den skriver ut "Your coffee is on the way" og break stopper switchen umiddelbart. default-blokken nederst fungerer som en siste else — den kjøres bare hvis ingen av casene stemmer.

Java 14+ — Ny switch-syntaks

I Java 14 og nyere ble det introdusert en ny syntaks med ->-pil:

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");
}

Hva som er endret:

  • ikke behov for break;
  • bruker -> i stedet for :;
  • hver case er automatisk isolert — ingen risiko for fall-through;
  • ryddigere og lettere å lese.

Begge versjonene fungerer likt — den nye syntaksen er bare mer moderne og tryggere.

En god huskeregel:

  • Bruk if / else if for sammenligninger og intervaller;
  • Bruk switch når du sjekker én verdi mot flere eksakte alternativer;
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6
some-alt