Switch-lause
switch-lause kuuluu myös ohjausrakenteisiin, jotka yksinkertaistavat päätöksentekoa ohjelmissasi. Se tarjoaa tehokkaan tavan arvioida lauseke ja suorittaa eri koodilohkoja lausekkeen arvon perusteella. Tämä on erityisen hyödyllistä, kun käsitellään suurta määrää haarautuvia ehtoja.
Se on ensisijaisesti suunniteltu toimimaan numeeristen arvojen, kuten kokonaislukujen (int) ja merkkien (char), kanssa.
switch.h
12345678910111213141516switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
-
Lauseke arvioidaan kerran, ja ohjelma hyppää sopivaan
case-kohtaan lausekkeen arvon perusteella; -
Jokainen
caseedustaa tiettyä arvoa tai arvojoukkoa, johon lauseke voi vastata; -
break-lausetta käytetään poistumaan switch-lohkosta sen jälkeen, kun tietyn tapauksen koodi on suoritettu; -
defaulton valinnainen ja sitä käytetään, kun mikään määritellyistä tapauksista ei vastaa lauseketta. Se toimii yleisvaihtoehtona.
Oletetaan, että omistat ravintolan ja haluat tarjota valikon numeeristen koodien perusteella. Tässä on koodiesitys valikkokohteista.
main.cpp
1234567891011121314151617181920212223242526#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }
Kyllä, tämän voi toteuttaa yksinkertaisella if-lauseella, ja se näyttäisi suunnilleen tältä:
main.cpp
123456789101112131415161718192021222324#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }
Se toimii samalla tavalla ja odotetusti, mutta yleensä on parempi käyttää switch-lausetta, koska se tarjoaa selkeämmän, luettavamman ja ennen kaikkea helpommin ylläpidettävän sekä laajennettavan tavan hallita tämänkaltaista ohjausvirtaa.
break-avainsanan pois jättäminen switch-lauseessa voi johtaa odottamattomaan ohjelmakäyttäytymiseen, sillä koodi jatkaa suorittamista seuraaviin tapauksiin. Kuitenkin, tarkoituksellinen break-avainsanan pois jättäminen voidaan käyttää hallitsemaan useita tapauksia saman koodilohkon sisällä. Tätä lähestymistapaa kutsutaan nimellä fall-through, ja sen avulla voidaan käsitellä toisiinsa liittyviä tapauksia yhdessä.
main.cpp
12345678910111213141516171819202122#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Swipe to start coding
Rakennat viikkosuunnittelujärjestelmää, joka palauttaa päivän nimen sen numeron perusteella (1 tarkoittaa maanantaita, 2 tiistaita jne.).
- Käytä
getDayName-funktion sisälläswitch-lausetta muuttujalledayNumber:- Käsittele tapaukset
1–7ja aseta vastaava päivän nimi ("Monday","Tuesday", ...,"Sunday") muuttujaandayName. - Käytä
break-lausetta jokaisen tapauksen jälkeen estääksesi läpiviennin. - Käytä
default-tapausta asettaaksesi arvoksi"Invalid day", jos syöte ei ole välillä 1–7.
- Käsittele tapaukset
- Palauta funktion lopuksi muuttujan
dayNamearvo.
Ratkaisu
solution.cpp
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you give an example of a switch statement in code?
What happens if I forget to include a break statement in a switch case?
Can you explain more about the fall-through behavior in switch statements?
Awesome!
Completion rate improved to 7.69
Switch-lause
Pyyhkäise näyttääksesi valikon
switch-lause kuuluu myös ohjausrakenteisiin, jotka yksinkertaistavat päätöksentekoa ohjelmissasi. Se tarjoaa tehokkaan tavan arvioida lauseke ja suorittaa eri koodilohkoja lausekkeen arvon perusteella. Tämä on erityisen hyödyllistä, kun käsitellään suurta määrää haarautuvia ehtoja.
Se on ensisijaisesti suunniteltu toimimaan numeeristen arvojen, kuten kokonaislukujen (int) ja merkkien (char), kanssa.
switch.h
12345678910111213141516switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
-
Lauseke arvioidaan kerran, ja ohjelma hyppää sopivaan
case-kohtaan lausekkeen arvon perusteella; -
Jokainen
caseedustaa tiettyä arvoa tai arvojoukkoa, johon lauseke voi vastata; -
break-lausetta käytetään poistumaan switch-lohkosta sen jälkeen, kun tietyn tapauksen koodi on suoritettu; -
defaulton valinnainen ja sitä käytetään, kun mikään määritellyistä tapauksista ei vastaa lauseketta. Se toimii yleisvaihtoehtona.
Oletetaan, että omistat ravintolan ja haluat tarjota valikon numeeristen koodien perusteella. Tässä on koodiesitys valikkokohteista.
main.cpp
1234567891011121314151617181920212223242526#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }
Kyllä, tämän voi toteuttaa yksinkertaisella if-lauseella, ja se näyttäisi suunnilleen tältä:
main.cpp
123456789101112131415161718192021222324#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }
Se toimii samalla tavalla ja odotetusti, mutta yleensä on parempi käyttää switch-lausetta, koska se tarjoaa selkeämmän, luettavamman ja ennen kaikkea helpommin ylläpidettävän sekä laajennettavan tavan hallita tämänkaltaista ohjausvirtaa.
break-avainsanan pois jättäminen switch-lauseessa voi johtaa odottamattomaan ohjelmakäyttäytymiseen, sillä koodi jatkaa suorittamista seuraaviin tapauksiin. Kuitenkin, tarkoituksellinen break-avainsanan pois jättäminen voidaan käyttää hallitsemaan useita tapauksia saman koodilohkon sisällä. Tätä lähestymistapaa kutsutaan nimellä fall-through, ja sen avulla voidaan käsitellä toisiinsa liittyviä tapauksia yhdessä.
main.cpp
12345678910111213141516171819202122#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Swipe to start coding
Rakennat viikkosuunnittelujärjestelmää, joka palauttaa päivän nimen sen numeron perusteella (1 tarkoittaa maanantaita, 2 tiistaita jne.).
- Käytä
getDayName-funktion sisälläswitch-lausetta muuttujalledayNumber:- Käsittele tapaukset
1–7ja aseta vastaava päivän nimi ("Monday","Tuesday", ...,"Sunday") muuttujaandayName. - Käytä
break-lausetta jokaisen tapauksen jälkeen estääksesi läpiviennin. - Käytä
default-tapausta asettaaksesi arvoksi"Invalid day", jos syöte ei ole välillä 1–7.
- Käsittele tapaukset
- Palauta funktion lopuksi muuttujan
dayNamearvo.
Ratkaisu
solution.cpp
Kiitos palautteestasi!
single