Haaste: 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
12345678if (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
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
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.
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ä.
Swipe to start coding
Olet kehittämässä lähetyslaskuria, joka määrittää toimituskulut paketin painon perusteella.
- Luo
calculateShippingCost-funktion sisälle muuttujacosttallentaaksesi toimitushinnan. - Käytä ehtolauseita hinnan määrittämiseen:
- Jos
weightKgon enintään 2, aseta hinnaksi 5.0. - Jos
weightKgon enintään 5, aseta hinnaksi 10.0. - Muussa tapauksessa aseta hinnaksi 20.0.
- Jos
- Palauta
costfunktiosta.
Ratkaisu
solution.cpp
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 7.69
Haaste: 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
12345678if (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
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
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.
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ä.
Swipe to start coding
Olet kehittämässä lähetyslaskuria, joka määrittää toimituskulut paketin painon perusteella.
- Luo
calculateShippingCost-funktion sisälle muuttujacosttallentaaksesi toimitushinnan. - Käytä ehtolauseita hinnan määrittämiseen:
- Jos
weightKgon enintään 2, aseta hinnaksi 5.0. - Jos
weightKgon enintään 5, aseta hinnaksi 10.0. - Muussa tapauksessa aseta hinnaksi 20.0.
- Jos
- Palauta
costfunktiosta.
Ratkaisu
solution.cpp
Kiitos palautteestasi!
single