JavaScript
JAVASCRIPTIIN LIITTYVÄÄ KOULUTUSTA VUONNA 2025!
Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.
JavaScriptin ohjausrakenteet: If-else rakenne
If-else on ohjausrakenne, jonka avulla voidaan testata ehto ja suorittaa koodilohko sen perusteella. Ehtoa tarkistavia ohjausrakenteita käytetään usein esimerkiksi JavaScriptin funktioiden sisällä ohjaamaan suoritusta.
Perussyntaksi
If-else rakenteen perussyntaksi on:
if (ehto) {
//suoritettavat lauseet
}
else {
// suoritettavat lauseet
}
Ohjausrakenteessa määriteltävä ehto palauttaa aina arvon tosi (true
tai epätosi(false
).
Jos ehto on tosi, suoritetaan if-lohko. Jos ehto ei täyty, suoritetaan else-lohko.
Tämä binäärinen tosi/epätosi -arvo on siis perusta sille, miten ohjausrakenteet ohjaavat koodin suoritusta.
Else-lohko ei ole pakollinen, mutta sen käyttäminen edustaa hyvää koodauskäytäntöä ja helpottaa koodin debuggausta virhetilanteissa.
Yksiriviset ehdot voidaan kirjoittaa ilman aaltosulkuja
Jos if tai else -rakenteessa on vain yksi suorituslause, aaltosulkujen {}
käyttäminen ei ole pakollista.
Tällöin koodi voidaan kirjoittaa tiiviimmin seuraavasti:
if (ehto) console.log("Ehto on tosi");
else console.log("Ehto ei ole tosi");
Vaikka tämä voi tehdä koodista tiiviimpää, useimmat koodauskonventiot suosittelevat käyttämään aaltosulkuja kaikissa tilanteissa selkeyden vuoksi.
Pikasyntaksi (ehto):true?false:
JavaScript tarjoaa myös lyhyemmän tavan ehtolauseiden kirjoittamiseksi. Tätä rakennetta kutsutaan ternaari-syntaksiksi eli kolmiosaiseksi operaattoriksi:
(ehto)?lause_true:lause_false;
Seuraavassa esimerkissä tarkistetaan kumpi muuttuja (a vai b) sisältää suuremman arvon, ja tulos tallennetaan muuttujaan:
var a = 5, b = 10;
var suurempi = (a > b) ? "a on suurempi" : "b on suurempi";
console.log(suurempi); // Tulostaa: b on suurempi
Ternaarisyntaksia voi käyttää myös monimutkaisemmissa rakenteissa, mutta on hyvä pitää mielessä, että se voi heikentää koodin luettavuutta.
If-else if-else rakenne
If-else ohjausrakennetta voidaan laajentaa if-else if-else rakenteella, joka mahdollistaa useiden peräkkäisten ehtojen tarkistamisen. Tämä rakenne on pohjimmiltaan ketju, jossa jokainen if-else -lohko tarkistaa oman ehtonsa, ja vain yksi lohko suoritetaan, jos sen ehto on tosi. Syntaksi on seuraava
if (ehto) {
//suoritettavat lauseet
}
else if (ehto2) {
// suoritettavat lauseet
}
else {
// suoritettavat lauseet
}
On kuitenkin tärkeää muistaa, että ohjausrakenteen suorittaminen keskeytyy heti kun ehto täyttyy. Tämän takia esimerkiksi seuraava koodinpätkä ei toimi oikein:
var a,b,c
a=2
b=2
c=2
if (a==b) {
//ehto täyttyy ja ohjausrakenteen suorittaminen pysähtyy tässä lohkossa
document.write("muuttuja a on yhtäsuuri kuin b");
}
else if (b==c) {
document.write("muuttuja b on yhtäsuuri kuin c");
}
else {
document.write("muuttujat a,b ja c ovat erisuuria");
}
Jotta koodi toimisi odotetulla tavalla, tulee ehdot määritellä seuraavasti:
var a,b,c
a=2
b=2
c=2
if(a==b && a==c) {
document.write("muuttujat a,b ja c ovat erisuuria");
}
else {
if (a==b) {
document.write("muuttuja a on yhtäsuuri kuin b");
}
if (a==c) {
document.write("muuttuja b on yhtäsuuri kuin c");
}
}