Usein halutaan, että ohjelman sisäinen tila vaikuttaa ohjelman suoritukseen. Voitaisiin esimerkiksi haluta, että ohjelma tulostaa erilaisen tulosteen riippuen jonkin muuttujan arvosta. Esimerkiksi alla oleva ohjelma tulostaa eri tekstin riippuen muuttujan ika arvosta. Jos ikä on alle 18, suoritetaan aaltosulkeiden sisällä eli if-lohkossa oleva koodi.
var ika = 14
if (ika < 18) {
console.log("Olet alaikäinen!")
}
Koodin ehdollinen suoritus onnistuu if
-avainsanan avulla. If-ehtolauseen rakenne on if ( ehto ) { koodi, joka suoritetaan ehdon ollessa tosi }
. Eli if-avainsanan jälkeen laitetaan jonkin ehto, jonka totuutta tarkastellaan ja sen jälkeen kirjoitetaan aaltosulkuihin koodi, joka tulee suorittaa ehdon ollesssa tosi. If-ehtolauseen jälkeen voi halutessaan kirjoittaa perään else-lohkon kuten yllä olevassa esimerkissä. Else-lohko suoritetaan siinä tapauksessa, että ehto ei ole tosi.
Jotta voimme käyttää edellä esiteltyjä ehtolauseita, meidän täytyy osata kirjoittaa joitain ehtoja niille. Eräs yksinkertainen ehto on yhtäsuuruden vertailu. Se onnistuu merkinnällä ==
. Ehtolauseen if (muuttuja == toinenMuuttuja ) { koodi }
koodi suoritetaan, jos muuttuja
ja toinenMuuttuja
sisältävät saman arvon.
Luvuilla voimme yhtäsuuruuden lisäksi tarkastella niiden suuruuksia. Voimme esimerkiksi tarkistaa, onko luku pienempi tai suurempi kuin toinen luku. Suuruuden vertailu onnisttuu operaattoreilla <
, >
, <=
ja >=
. Operaattorit <
ja >
eivät ota yhtäsuuruutta huomioon kun taas operaattorit <=
ja >=
ottavat.
Seuraavassa koodinpätkässä ehto on totta, joten vain if-lohkon sisällä oleva koodi suoritetaan:
var luku = 8
var toinenLuku = 7
if (luku >= toinenLuku) {
// If-lohko, joka suoritetaan
}
Seuraavassa koodinpätkässä ehto on epätosi ja vain else:n sisällä oleva koodi suoritetaan:
var luku = 6
var toinenLuku = 7
if (luku >= toinenLuku) {
// If-lohko, jota ei suoriteta
}
a
arvoa niin, että tehtävässä oleva ehto on totta.
false
tilalle.
Ehtolauseet ovat hyödyllisiä, mutta useita ohjelmia yksinkertaistaisi jos voisimme suorittaa koodia tapauksessa, jossa ehto ei ollut tosi. Yksi tapa tehdä tämä on tehdä päinvastainen ehto ensimmäisen ehdon jälkeen. Esimerkiksi jos ensimmäinen ehto olisi if ( x > 3)
ehto if ( x <= 3)
suoritetaan aina, kun ensimmäinen ei ole totta.
false
tilalle, joka on totta aina kun ensimmäinen ehto ei ole totta.
Vastakkaisen ehdon kirjoittaminen toimii, mutta niiden kirjoittaminen on työlästä. Helpompaa olisi, jos meillä olisi tapa ilmaista että haluamme suorittaa tiettyä koodia, kun ehto ei ole totta.
Tälläisiä tilanteita varten on olemassa else
-lohko. Se liitetään if-lohkon perään ja suoritetaan kun if-lauseen ehto ei ole totta. Alla oleva esimerkissä suortitettaisiin vain alempi else
-lohko ja ohjelma tulostaisi "Olet täysi-ikäinen!".
var ika = 18
if (ika < 18) {
console.log("Olet alaikäinen!")
} else {
console.log("Olet täysi-ikäinen!")
}