Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Switch-Lauseet Javassa | Operaattorit ja ehtolauseet
Johdatus Javaan

Switch-Lauseet Javassa

Pyyhkäise näyttääksesi valikon

Tähän asti if, else ja else if ovat olleet pääasialliset työkalut erilaisten tilanteiden käsittelyyn. Ne toimivat hyvin ehtojen, arvoalueiden tai vertailujen tarkistamiseen.

Joskus emme kuitenkaan vertaile arvoalueita lainkaan — haluamme vain tarkistaa yhden muuttujan useita tarkkoja arvoja vastaan. Esimerkiksi:

  • asiakas valitsee maksutavan;
  • kahvitilauksella on tietty noutotapa;
  • kanta-asiakas valitsee palkkiotason.

Tällöin switch-lauseet ovat hyödyllisiä — ne vertaavat yhtä arvoa useisiin tarkkoihin vaihtoehtoihin selkeämmin ja järjestelmällisemmin.

Rakenne

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

    case "value2" -> {
        // code
    }

    default -> {
        // fallback code
    }
}

Java käy läpi jokaisen case-kohdan yksi kerrallaan, kunnes löytää sopivan.

Esimerkki

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 tarkistaa pickupType-arvon tapaus kerrallaan — "pickup" ei täsmää, "delivery" täsmää, joten tulostetaan "Your coffee is on the way" ja break lopettaa switchin välittömästi. Alhaalla oleva default-lohko toimii kuin lopullinen else — se suoritetaan vain, jos mikään tapaus ei täsmää.

Java 14+ — Uusi switch-syntaksi

Java 14:ssä ja uudemmissa otettiin käyttöön uusi syntaksi, jossa käytetään ->-nuolta:

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

Mitä muuttui:

  • break-lausetta ei tarvita;
  • käytetään -> :-merkin sijaan;
  • jokainen tapaus on automaattisesti eristetty — ei riskiä läpiviennistä;
  • selkeämpi ja helpompi lukea.

Molemmat versiot toimivat samalla tavalla — uusi syntaksi on vain modernimpi ja turvallisempi.

Hyvä muistisääntö:

  • Käytä if / else if vertailuihin ja alueisiin;
  • Käytä switch kun tarkistetaan yhtä arvoa monia tarkkoja vaihtoehtoja vastaan;
question mark

Mikä on break-lauseen tarkoitus switch-rakenteessa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 3. Luku 6
some-alt