Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Switch-setning | Introduksjon til Betingede Setninger
C++ Betingede Setninger

bookSwitch-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

switch.h

copy
12345678910111213141516
switch (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 case basert på verdien til uttrykket;

  • Hver case representerer 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;

  • default er 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

main.cpp

copy
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

main.cpp

copy
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

main.cpp

copy
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; } }
Oppgave

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.).

  1. Inne i funksjonen getDayName, bruk en switch-setningdayNumber:
    • For hver case fra 1 til 7, tildel det tilsvarende dagsnavnet ("Monday", "Tuesday", ..., "Sunday") til variabelen dayName.
    • Bruk break etter hver case for å unngå gjennomløp.
    • Bruk en default-case for å tildele "Invalid day" hvis input ikke er mellom 1 og 7.
  2. Returner verdien til dayName fra funksjonen.

Løsning

solution.cpp

solution.cpp

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 6
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 7.69

bookSwitch-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

switch.h

copy
12345678910111213141516
switch (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 case basert på verdien til uttrykket;

  • Hver case representerer 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;

  • default er 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

main.cpp

copy
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

main.cpp

copy
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

main.cpp

copy
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; } }
Oppgave

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.).

  1. Inne i funksjonen getDayName, bruk en switch-setningdayNumber:
    • For hver case fra 1 til 7, tildel det tilsvarende dagsnavnet ("Monday", "Tuesday", ..., "Sunday") til variabelen dayName.
    • Bruk break etter hver case for å unngå gjennomløp.
    • Bruk en default-case for å tildele "Invalid day" hvis input ikke er mellom 1 og 7.
  2. Returner verdien til dayName fra funksjonen.

Løsning

solution.cpp

solution.cpp

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 6
single

single

some-alt