Tredun ohjelmistokehittäjien kurssimateriaaleja
Ehtolauseissa käytetään usein vertailuoperaattoreita. Vertailuoperaatio palauttaa totuusarvon (true/false):
| Vertailuoperaattori | Esimerkkejä |
|---|---|
| < (pienempi kuin) | 2 < 2 |
| > (suurempi kuin) | -1 > 0 |
| <= (pienempi tai yhtäsuuri kuin) | 20 <= 2 |
| >= (suurempi tai yhtäsuuri kuin) | -1 >= -1 |
| == (yhtäsuuri) | 90 == "90" |
| === (yhtäsuuri ja samaa tyyppiä) | 90 === 900/10 |
| != (erisuuri) | 2 != 10 |
Jos ehtoja on useampia, täytyy käyttää lisää operaattoreita.
| Vertailuoperaattori | Esimerkkejä |
| ———————- |:————-:|
| && jos kahden tai useamman ehdon pitää täyttyä | name != undefined && name.length >= 2 |
| || jos ehto on joko tai | number > 0 || number > 10 |
JavaScriptissä on muutamia erilaisia ehtolausetyyppejä. Tässä käymme niistä läpi kaksi.
JavaScriptissä on kaksi tapaa tehdä ehtolause. Jos ehto on lyhyt sen voi kirjoittaa näin:
let pet;
let a = 10;
let b = 9;
a > b ? pet = "cat" : pet = "dog";
Tässä alustettiin ensin muuttujat a ja b. Jos vertailu a > b saa arvon true, palautuu “kissa” muuten “koira.
Jos tosihaarassa pitää suorittaa enemmän koodia, on parempi käytää if-else-rakennetta (aaltosulkujen sisään voi laittaa useita rivejä koodia ns. koodilohko):
if(a > b){
pet = "cat";
} else {
pet = "dog";
}
JavaScriptissä on myös else if, jolla voidaan ketjuttaa eri ehtoja. Myös pelkkiä if-lausekkeita voi laittaa ketjuun, mutta ne toimivat eri tavalla.
Kun kirjoitat useita if-lauseita peräkkäin, kaikki ehdot tarkistetaan erikseen.
let temperature = 30;
if (temperature > 25) {
console.log("On lämmin");
}
if (temperature > 15) {
console.log("On melko lämmin");
}
Molemmat ehdot ovat totta, joten molemmat koodilohkot suoritetaan
Käytä tätä, kun:
Useampi ehto voi olla samaan aikaan totta
Jokainen ehto tekee oman, erillisen asiansa
Esimerkki:
let age = 70;
if (age >= 18) {
console.log("Täysi-ikäinen");
}
if (age >= 65) {
console.log("Oikeus eläkeläisalennukseen");
}
else if -ketjussa ehdot tarkistetaan järjestyksessä, ja kun yksi ehto on tosi, muita ei enää tarkisteta.
let temperature = 30;
if (temperature > 25) {
console.log("On lämmin");
} else if (temperature > 15) {
console.log("On melko lämmin");
} else {
console.log("On kylmä");
}
Vain yksi viesti tulostuu
Ensimmäinen tosi ehto “voittaa”
Käytä tätä, kun:
Vaihtoehdot ovat toisiaan poissulkevia
Haluat valita yhden lopputuloksen
Esimerkki:
let score = 85;
if (score >= 90) {
console.log("Kiitettävä");
} else if (score >= 70) {
console.log("Hyvä");
} else {
console.log("Tarvitsee harjoitusta");
}
Yleinen nyrkkisääntö
Jos useampi ehto voi olla totta → käytä useita if-lauseita Jos vain yksi vaihtoehto saa toteutua → käytä else if -ketjua
switch-rakenteen avulla voidaan valita suoritettava koodilohko. Oletuksena on, että tarjolla on joukko vaihtoehtoja, joiden arvot ovat tiedossa. Default-vaihtoehto lopussa voi joko olla viimeinen mahdollinen vaihtoehto tai joissakin tapauksissa esimerkiksi virheilmoitus, jos annettu arvo ei vastaa mitään vaihtoehdoista.
switch(language) {
case "swedish":
console.log("God dag!")
break;
case "finnish":
console.log("Päivää!")
break;
default:
console.log("Hello!")
}
1, -3, 5, 88 ja "Heippa".Parannetaan edellistä harjoitusta eli lisätään siihen tarkistuksia erilaisten syötteiden varalle.
if – else if – else -rakenne.if: tarkista, onko annettu parametri numero.typeof-operaattoria.)else if: tarkista, että arvosana on välillä 0–5.else: suorita switch-rakenne, joka tulostaa arvosanan sanallisen kuvauksen.1, -3, 5, 88 ja "Heippa".Kun kirjoitetaan monimutkaisempia ehtolauseita, on usein tarve ottaa huomioon useampi ehto kerrallaan. Se onnistuu loogisten operaattoreiden && (and), || (or) ja ! (not) avulla.
Jos molempien ehtojen vaaditaan olevan totta, käytetään &&-operaattoria, jos riittää että yksikin ehdoista toteutuu käytetään ||-operaattoria. Totuusarvon voi käytää toiseksi käyttämällä !-operaattoria. Kaikki seuraavat lausekkeet saavat totuusarvokseen true:
true && true
true || false
!false
const canEnterPool(age, canSwim, withAdult) {
if ((age >= 12 && canSwim) || withAdult) {
console.log("Saat mennä uimaan.");
} else {
console.log("Et saa mennä uimaan.");
}
}
Jos käyttäjän kirjautuminen onnistuu, tulosta ruudulle Tervetuloa!, mutta jos hän ei voi, tulosta Ei pääsyä. Tarkista käyttäjätunnus ja salasana.
login("admin", "porkkana", false);
login("user", "porkkana", false);
login("guest", "test", true);
login("admin", "wrong", false);