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
123456789101112131415161718package 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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme