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

Else If -ketjut Javassa

Pyyhkäise näyttääksesi valikon

Tähän asti if-else-lauseet toimivat hyvin, kun tarvitaan vain kaksi mahdollista lopputulosta. Todellisissa järjestelmissä päätökset ovat kuitenkin usein monimutkaisempia.

Esimerkiksi kahvilassa voi olla erilaisia palkintotasoja sen mukaan, kuinka monta tuotetta asiakas tilaa:

  • pienistä tilauksista ei saa lisäetuja;
  • keskisuurista tilauksista saa pienen bonuksen;
  • suurista tilauksista saa suuremman palkinnon;
  • erittäin suurista tilauksista voi saada erikoistarjouksen.

Tässä kohtaa else if -ketjut ovat hyödyllisiä — niiden avulla voidaan tarkistaa useita ehtoja peräkkäin. Ohjelma käy ehtoja läpi ylhäältä alas ja suorittaa ensimmäisen lohkon, jonka ehto on true, ja ohittaa loput.

Rakenne

if (condition1) {
    // runs if condition1 is true
} else if (condition2) {
    // runs if condition2 is true
} else {
    // runs if none are true
}

Vain yksi lohko suoritetaan — ensimmäinen täsmäävä ehto voittaa.

Esimerkki

Main.java

Main.java

123456789101112131415161718
package com.example; public class Main { public static void main(String[] args) { int deliveryDistance = 7; if (deliveryDistance > 20) { System.out.println("Delivery fee: 10€"); } else if (deliveryDistance > 10) { System.out.println("Delivery fee: 5€"); } else if (deliveryDistance > 5) { System.out.println("Delivery fee: 2€"); } else { System.out.println("Free delivery"); } } }

deliveryDistance tarkistetaan jokaista ehtoa vastaan ylhäältä alas. Koska 7 ei ole suurempi kuin 20 tai 10, mutta on suurempi kuin 5, kolmas lohko täsmää ja tulostaa "Delivery fee: 2€". Alimpana oleva else suoritetaan vain, jos mikään ehdoista ei täyty.

On erittäin tärkeää ymmärtää, että järjestyksellä on väliä. Koska Java pysähtyy ensimmäiseen true-ehtoon, tarkistukset kannattaa järjestää tiukimmasta yleisimpään — muuten laajempi ehto voi vahingossa kattaa arvoja, jotka kuuluvat tarkemmalle säännölle.

Ajattele else if -ketjuja päätöspolkuna — ohjelma kulkee askel askeleelta alaspäin, kunnes löytää oikean osuman.

question mark

Mitä tämä tulostaa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 3. Luku 5
some-alt