Switch-setning
switch-setningen er også en av kontrollstrukturene som forenkler beslutningstaking i programmene dine. Den gir en effektiv måte å evaluere et uttrykk på og utføre ulike kodeblokker basert på verdien til dette uttrykket. Dette kan være spesielt nyttig når du arbeider med et stort antall forgreninger.
Den er primært designet for å brukes med numeriske verdier, som heltall (int) og tegn (char).
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 }
-
Uttrykket evalueres én gang, og programmet hopper til riktig
casebasert på verdien til uttrykket; -
Hver
caserepresenterer en spesifikk verdi eller et sett med verdier som uttrykket kan matche; -
break-setningen brukes for å avslutte switch-blokken etter at koden for en bestemt case er utført; -
defaulter valgfritt og brukes når ingen av de spesifiserte case matcher uttrykket. Den fungerer som et alternativ for alle andre tilfeller.
Anta at du eier en restaurant og ønsker å tilby en meny basert på numeriske koder. Her er kodepresentasjonen av menyvalgene.
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; } }
Ja, dette kan oppnås med en enkel if-setning, og det vil se omtrent slik ut:
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; } }
Den vil fungere på samme måte og som forventet, men det er generelt bedre å bruke en switch-setning fordi det gir en tydeligere, mer lesbar og, viktigst av alt, enklere å vedlikeholde og skalerbar måte å håndtere denne typen kontrollflyt på.
Å utelate break-nøkkelordet i en switch-setning kan føre til uventet programoppførsel, ettersom koden vil fortsette å kjøre inn i påfølgende case-blokker. Likevel kan det å bevisst utelate break brukes for å håndtere flere case-blokker innenfor samme kodeblokk. Denne tilnærmingen, kjent som fall-through, gjør det mulig å behandle relaterte case-blokker samlet.
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
Du utvikler et ukentlig planleggingssystem som returnerer navnet på dagen basert på dens nummer (1 for Monday, 2 for Tuesday, osv.).
- Inne i funksjonen
getDayName, bruk enswitch-setning pådayNumber:- For hver case fra
1til7, tildel det tilsvarende dagsnavnet ("Monday","Tuesday", ...,"Sunday") til variabelendayName. - Bruk
breaketter hver case for å unngå gjennomløp. - Bruk en
default-case for å tildele"Invalid day"hvis input ikke er mellom 1 og 7.
- For hver case fra
- Returner verdien til
dayNamefra funksjonen.
Løsning
solution.cpp
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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-setning
Sveip for å vise menyen
switch-setningen er også en av kontrollstrukturene som forenkler beslutningstaking i programmene dine. Den gir en effektiv måte å evaluere et uttrykk på og utføre ulike kodeblokker basert på verdien til dette uttrykket. Dette kan være spesielt nyttig når du arbeider med et stort antall forgreninger.
Den er primært designet for å brukes med numeriske verdier, som heltall (int) og tegn (char).
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 }
-
Uttrykket evalueres én gang, og programmet hopper til riktig
casebasert på verdien til uttrykket; -
Hver
caserepresenterer en spesifikk verdi eller et sett med verdier som uttrykket kan matche; -
break-setningen brukes for å avslutte switch-blokken etter at koden for en bestemt case er utført; -
defaulter valgfritt og brukes når ingen av de spesifiserte case matcher uttrykket. Den fungerer som et alternativ for alle andre tilfeller.
Anta at du eier en restaurant og ønsker å tilby en meny basert på numeriske koder. Her er kodepresentasjonen av menyvalgene.
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; } }
Ja, dette kan oppnås med en enkel if-setning, og det vil se omtrent slik ut:
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; } }
Den vil fungere på samme måte og som forventet, men det er generelt bedre å bruke en switch-setning fordi det gir en tydeligere, mer lesbar og, viktigst av alt, enklere å vedlikeholde og skalerbar måte å håndtere denne typen kontrollflyt på.
Å utelate break-nøkkelordet i en switch-setning kan føre til uventet programoppførsel, ettersom koden vil fortsette å kjøre inn i påfølgende case-blokker. Likevel kan det å bevisst utelate break brukes for å håndtere flere case-blokker innenfor samme kodeblokk. Denne tilnærmingen, kjent som fall-through, gjør det mulig å behandle relaterte case-blokker samlet.
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
Du utvikler et ukentlig planleggingssystem som returnerer navnet på dagen basert på dens nummer (1 for Monday, 2 for Tuesday, osv.).
- Inne i funksjonen
getDayName, bruk enswitch-setning pådayNumber:- For hver case fra
1til7, tildel det tilsvarende dagsnavnet ("Monday","Tuesday", ...,"Sunday") til variabelendayName. - Bruk
breaketter hver case for å unngå gjennomløp. - Bruk en
default-case for å tildele"Invalid day"hvis input ikke er mellom 1 og 7.
- For hver case fra
- Returner verdien til
dayNamefra funksjonen.
Løsning
solution.cpp
Takk for tilbakemeldingene dine!
single