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

bookSwitch-sætning

switch-sætningen er også en af de kontrolstrukturer, der forenkler beslutningstagning i dine programmer. Den giver en effektiv måde at evaluere et udtryk og udføre forskellige kodeblokke baseret på værdien af dette udtryk. Dette er især nyttigt, når der er et stort antal forgreningsbetingelser.

Den er primært designet til at arbejde med numeriske værdier, såsom heltal (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 }
  • Udtrykket evalueres én gang, og programmet springer til det relevante case baseret på værdien af udtrykket;

  • Hver case repræsenterer en specifik værdi eller et sæt af værdier, som udtrykket kan matche;

  • break-sætningen bruges til at afslutte switch-blokken efter koden for et bestemt case er blevet udført;

  • default er valgfri og bruges, når ingen af de angivne cases matcher udtrykket. Den fungerer som en standardmulighed.

Antag, at du ejer en restaurant og ønsker at tilbyde en menu baseret på numeriske koder. Her er den kodebaserede repræsentation af menupunkterne.

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 opnås med en simpel if-sætning, og det ville se sådan ud:

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

Det vil fungere på samme måde og som forventet, men det er generelt bedre at anvende en switch-sætning, da den giver en tydeligere, mere læsbar, og, vigtigst af alt, nemmere at vedligeholde og skalerbar metode til at håndtere denne type kontrolflow.

Hvis man udelader break-nøgleordet i en switch-sætning, kan det føre til uventet programadfærd, da koden vil fortsætte med at udføre efterfølgende cases. Dog kan man med vilje undlade break for at håndtere flere cases inden for samme kodeblok. Denne tilgang, kendt som fall-through, gør det muligt at behandle relaterede cases 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; } }
Opgave

Swipe to start coding

Du udvikler et ugentligt planlægningssystem, der returnerer navnet på dagen baseret på dens nummer (1 for Monday, 2 for Tuesday osv.).

  1. Inde i funktionen getDayName, brug en switch-sætningdayNumber:
    • For hvert case fra 1 til 7, tildel det tilsvarende dagsnavn ("Monday", "Tuesday", ..., "Sunday") til variablen dayName.
    • Brug break-sætningen efter hvert case for at undgå gennemløb.
    • Brug et default-case til at tildele "Invalid day", hvis input ikke er mellem 1 og 7.
  2. Returnér værdien af dayName fra funktionen.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 6
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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-sætning

Stryg for at vise menuen

switch-sætningen er også en af de kontrolstrukturer, der forenkler beslutningstagning i dine programmer. Den giver en effektiv måde at evaluere et udtryk og udføre forskellige kodeblokke baseret på værdien af dette udtryk. Dette er især nyttigt, når der er et stort antal forgreningsbetingelser.

Den er primært designet til at arbejde med numeriske værdier, såsom heltal (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 }
  • Udtrykket evalueres én gang, og programmet springer til det relevante case baseret på værdien af udtrykket;

  • Hver case repræsenterer en specifik værdi eller et sæt af værdier, som udtrykket kan matche;

  • break-sætningen bruges til at afslutte switch-blokken efter koden for et bestemt case er blevet udført;

  • default er valgfri og bruges, når ingen af de angivne cases matcher udtrykket. Den fungerer som en standardmulighed.

Antag, at du ejer en restaurant og ønsker at tilbyde en menu baseret på numeriske koder. Her er den kodebaserede repræsentation af menupunkterne.

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 opnås med en simpel if-sætning, og det ville se sådan ud:

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

Det vil fungere på samme måde og som forventet, men det er generelt bedre at anvende en switch-sætning, da den giver en tydeligere, mere læsbar, og, vigtigst af alt, nemmere at vedligeholde og skalerbar metode til at håndtere denne type kontrolflow.

Hvis man udelader break-nøgleordet i en switch-sætning, kan det føre til uventet programadfærd, da koden vil fortsætte med at udføre efterfølgende cases. Dog kan man med vilje undlade break for at håndtere flere cases inden for samme kodeblok. Denne tilgang, kendt som fall-through, gør det muligt at behandle relaterede cases 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; } }
Opgave

Swipe to start coding

Du udvikler et ugentligt planlægningssystem, der returnerer navnet på dagen baseret på dens nummer (1 for Monday, 2 for Tuesday osv.).

  1. Inde i funktionen getDayName, brug en switch-sætningdayNumber:
    • For hvert case fra 1 til 7, tildel det tilsvarende dagsnavn ("Monday", "Tuesday", ..., "Sunday") til variablen dayName.
    • Brug break-sætningen efter hvert case for at undgå gennemløb.
    • Brug et default-case til at tildele "Invalid day", hvis input ikke er mellem 1 og 7.
  2. Returnér værdien af dayName fra funktionen.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 6
single

single

some-alt