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