Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Else-lause | Johdanto Ehtoihin
C++-Ehtolauseet

bookHaaste: Else-lause

else-lause on olennainen osa ohjelman ohjausvirran hallintaa. Se täydentää if-lausetta mahdollistamalla ohjelman suorittaa eri toimintoja sen mukaan, onko annettu ehto true vai false. Käytännössä se mahdollistaa ohjelman valita kahden vaihtoehtoisen polun välillä.

else.h

else.h

copy
12345678
if (condition) { // Code to be executed if the condition is true } else { // Code to be executed if the condition is false }

Jos ehto on false, ensimmäisen lohkon (eli if-lausetta seuraavan lohkon) koodi ohitetaan, ja toisen lohkon (eli else-lausetta seuraavan lohkon) koodi suoritetaan.

Suorituksen aikana ohjelma toimii odotetusti. Koska muuttuja x on pienempi kuin 10, tuloste on oikein: X is not greater than 10.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 5; if (x > 10) { std::cout << "X is greater than 10" << std::endl; } std::cout << "X is not greater than 10" << std::endl; }

Yritä kuitenkin muuttaa muuttujan x arvoa suuremmaksi kuin 10 ja suorita annettu koodiesimerkki uudelleen. Kuten huomaat, tulostuu kaksi erillistä viestiä: toinen ilmoittaa, että X is greater than 10, ja toinen kertoo, että X is not greater than 10.

Tärkeää on ymmärtää, että toinen std::cout-lause ei kuulu if-lohkoon, vaan se suoritetaan aina ehdoitta if-lohkon jälkeen, minkä vuoksi molemmat viestit tulostuvat. Tämä täytyy tietenkin korjata, ja ongelma voidaan ratkaista käyttämällä else-avainsanaa.

main.cpp

main.cpp

copy
123456789101112131415
#include <iostream> int main() { int x = 5; if (x > 10) { std::cout << "X is greater than 10" << std::endl; } else { std::cout << "X is not greater than 10" << std::endl; } }

Nyt kaikki toimii odotetusti ja vain yksi kahdesta ohjeesta suoritetaan riippuen muuttujan x arvosta.

Note
Huomautus

else-avainsanaa voi seurata mikä tahansa lause, mukaan lukien toinen if-lohko, ja tätä ketjua voidaan jatkaa tarpeen mukaan. On kuitenkin tärkeää olla käyttämättä tätä rakennetta liikaa, sillä se voi vaikeuttaa ohjelman kulun ymmärtämistä.

Tehtävä

Swipe to start coding

Olet kehittämässä lähetyslaskuria, joka määrittää toimituskulut paketin painon perusteella.

  1. Luo calculateShippingCost-funktion sisälle muuttuja cost tallentaaksesi toimitushinnan.
  2. Käytä ehtolauseita hinnan määrittämiseen:
    • Jos weightKg on enintään 2, aseta hinnaksi 5.0.
    • Jos weightKg on enintään 5, aseta hinnaksi 10.0.
    • Muussa tapauksessa aseta hinnaksi 20.0.
  3. Palauta cost funktiosta.

Ratkaisu

solution.cpp

solution.cpp

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 7.69

bookHaaste: Else-lause

Pyyhkäise näyttääksesi valikon

else-lause on olennainen osa ohjelman ohjausvirran hallintaa. Se täydentää if-lausetta mahdollistamalla ohjelman suorittaa eri toimintoja sen mukaan, onko annettu ehto true vai false. Käytännössä se mahdollistaa ohjelman valita kahden vaihtoehtoisen polun välillä.

else.h

else.h

copy
12345678
if (condition) { // Code to be executed if the condition is true } else { // Code to be executed if the condition is false }

Jos ehto on false, ensimmäisen lohkon (eli if-lausetta seuraavan lohkon) koodi ohitetaan, ja toisen lohkon (eli else-lausetta seuraavan lohkon) koodi suoritetaan.

Suorituksen aikana ohjelma toimii odotetusti. Koska muuttuja x on pienempi kuin 10, tuloste on oikein: X is not greater than 10.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 5; if (x > 10) { std::cout << "X is greater than 10" << std::endl; } std::cout << "X is not greater than 10" << std::endl; }

Yritä kuitenkin muuttaa muuttujan x arvoa suuremmaksi kuin 10 ja suorita annettu koodiesimerkki uudelleen. Kuten huomaat, tulostuu kaksi erillistä viestiä: toinen ilmoittaa, että X is greater than 10, ja toinen kertoo, että X is not greater than 10.

Tärkeää on ymmärtää, että toinen std::cout-lause ei kuulu if-lohkoon, vaan se suoritetaan aina ehdoitta if-lohkon jälkeen, minkä vuoksi molemmat viestit tulostuvat. Tämä täytyy tietenkin korjata, ja ongelma voidaan ratkaista käyttämällä else-avainsanaa.

main.cpp

main.cpp

copy
123456789101112131415
#include <iostream> int main() { int x = 5; if (x > 10) { std::cout << "X is greater than 10" << std::endl; } else { std::cout << "X is not greater than 10" << std::endl; } }

Nyt kaikki toimii odotetusti ja vain yksi kahdesta ohjeesta suoritetaan riippuen muuttujan x arvosta.

Note
Huomautus

else-avainsanaa voi seurata mikä tahansa lause, mukaan lukien toinen if-lohko, ja tätä ketjua voidaan jatkaa tarpeen mukaan. On kuitenkin tärkeää olla käyttämättä tätä rakennetta liikaa, sillä se voi vaikeuttaa ohjelman kulun ymmärtämistä.

Tehtävä

Swipe to start coding

Olet kehittämässä lähetyslaskuria, joka määrittää toimituskulut paketin painon perusteella.

  1. Luo calculateShippingCost-funktion sisälle muuttuja cost tallentaaksesi toimitushinnan.
  2. Käytä ehtolauseita hinnan määrittämiseen:
    • Jos weightKg on enintään 2, aseta hinnaksi 5.0.
    • Jos weightKg on enintään 5, aseta hinnaksi 10.0.
    • Muussa tapauksessa aseta hinnaksi 20.0.
  3. Palauta cost funktiosta.

Ratkaisu

solution.cpp

solution.cpp

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4
single

single

some-alt