Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Switch-Anweisung | Einführung in Bedingte Anweisungen
C++ Bedingte Anweisungen

bookSwitch-Anweisung

Die switch-Anweisung ist ebenfalls eine Kontrollstruktur, die die Entscheidungsfindung in Programmen vereinfacht. Sie bietet eine effiziente Möglichkeit, einen Ausdruck auszuwerten und je nach Wert dieses Ausdrucks verschiedene Codeblöcke auszuführen. Dies ist besonders nützlich, wenn eine große Anzahl von Verzweigungsbedingungen vorliegt.

Sie ist in erster Linie für die Arbeit mit numerischen Werten wie Ganzzahlen (int) und Zeichen (char) konzipiert.

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 }
  • Der Ausdruck wird einmal ausgewertet und das Programm springt zum entsprechenden case basierend auf dem Wert des Ausdrucks;

  • Jeder case steht für einen bestimmten Wert oder eine Gruppe von Werten, die dem Ausdruck entsprechen können;

  • Die break-Anweisung wird verwendet, um den switch-Block nach Ausführung des Codes für einen bestimmten Fall zu verlassen;

  • Das default ist optional und wird verwendet, wenn keiner der angegebenen Fälle auf den Ausdruck zutrifft. Es dient als Auffangoption.

Angenommen, Sie besitzen ein Restaurant und möchten ein Menü basierend auf aufgelisteten numerischen Codes bereitstellen. Hier ist die Code-Darstellung der Menüelemente.

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, dies lässt sich mit einer einfachen if-Anweisung erreichen, und es würde etwa so aussehen:

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

Es funktioniert wie erwartet, jedoch ist es im Allgemeinen besser, eine switch-Anweisung zu verwenden, da sie eine klarere, besser lesbare und vor allem wartungsfreundlichere sowie skalierbare Möglichkeit bietet, diesen Kontrollfluss zu steuern.

Das Weglassen des break-Schlüsselworts in einer switch-Anweisung kann zu unerwartetem Programmverhalten führen, da der Code in die nachfolgenden Fälle weiter ausgeführt wird. Das absichtliche Weglassen von break kann jedoch genutzt werden, um mehrere Fälle innerhalb desselben Codeblocks zu behandeln. Dieser Ansatz, bekannt als Fall-Through, ermöglicht es, zusammengehörige Fälle gemeinsam zu verarbeiten.

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

Swipe to start coding

Sie entwickeln ein Wochenplaner-System, das den Namen des Wochentags anhand seiner Nummer zurückgibt (1 für Monday, 2 für Tuesday usw.).

  1. Verwenden Sie innerhalb der Funktion getDayName eine switch-Anweisung für dayNumber:
    • Weisen Sie für jeden Fall von 1 bis 7 den entsprechenden Tagesnamen ("Monday", "Tuesday", ..., "Sunday") der Variablen dayName zu.
    • Verwenden Sie nach jedem Fall die Anweisung break, um ein Durchfallen zu verhindern.
    • Verwenden Sie einen default-Fall, um "Invalid day" zuzuweisen, falls die Eingabe nicht zwischen 1 und 7 liegt.
  2. Geben Sie den Wert von dayName aus der Funktion zurück.

Beispiel

getDayName(1)"Monday"
getDayName(5)"Friday"
getDayName(9)"Invalid day number"

Lösung

solution.cpp

solution.cpp

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 6
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you show me 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-Anweisung

Swipe um das Menü anzuzeigen

Die switch-Anweisung ist ebenfalls eine Kontrollstruktur, die die Entscheidungsfindung in Programmen vereinfacht. Sie bietet eine effiziente Möglichkeit, einen Ausdruck auszuwerten und je nach Wert dieses Ausdrucks verschiedene Codeblöcke auszuführen. Dies ist besonders nützlich, wenn eine große Anzahl von Verzweigungsbedingungen vorliegt.

Sie ist in erster Linie für die Arbeit mit numerischen Werten wie Ganzzahlen (int) und Zeichen (char) konzipiert.

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 }
  • Der Ausdruck wird einmal ausgewertet und das Programm springt zum entsprechenden case basierend auf dem Wert des Ausdrucks;

  • Jeder case steht für einen bestimmten Wert oder eine Gruppe von Werten, die dem Ausdruck entsprechen können;

  • Die break-Anweisung wird verwendet, um den switch-Block nach Ausführung des Codes für einen bestimmten Fall zu verlassen;

  • Das default ist optional und wird verwendet, wenn keiner der angegebenen Fälle auf den Ausdruck zutrifft. Es dient als Auffangoption.

Angenommen, Sie besitzen ein Restaurant und möchten ein Menü basierend auf aufgelisteten numerischen Codes bereitstellen. Hier ist die Code-Darstellung der Menüelemente.

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, dies lässt sich mit einer einfachen if-Anweisung erreichen, und es würde etwa so aussehen:

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

Es funktioniert wie erwartet, jedoch ist es im Allgemeinen besser, eine switch-Anweisung zu verwenden, da sie eine klarere, besser lesbare und vor allem wartungsfreundlichere sowie skalierbare Möglichkeit bietet, diesen Kontrollfluss zu steuern.

Das Weglassen des break-Schlüsselworts in einer switch-Anweisung kann zu unerwartetem Programmverhalten führen, da der Code in die nachfolgenden Fälle weiter ausgeführt wird. Das absichtliche Weglassen von break kann jedoch genutzt werden, um mehrere Fälle innerhalb desselben Codeblocks zu behandeln. Dieser Ansatz, bekannt als Fall-Through, ermöglicht es, zusammengehörige Fälle gemeinsam zu verarbeiten.

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

Swipe to start coding

Sie entwickeln ein Wochenplaner-System, das den Namen des Wochentags anhand seiner Nummer zurückgibt (1 für Monday, 2 für Tuesday usw.).

  1. Verwenden Sie innerhalb der Funktion getDayName eine switch-Anweisung für dayNumber:
    • Weisen Sie für jeden Fall von 1 bis 7 den entsprechenden Tagesnamen ("Monday", "Tuesday", ..., "Sunday") der Variablen dayName zu.
    • Verwenden Sie nach jedem Fall die Anweisung break, um ein Durchfallen zu verhindern.
    • Verwenden Sie einen default-Fall, um "Invalid day" zuzuweisen, falls die Eingabe nicht zwischen 1 und 7 liegt.
  2. Geben Sie den Wert von dayName aus der Funktion zurück.

Beispiel

getDayName(1)"Monday"
getDayName(5)"Friday"
getDayName(9)"Invalid day number"

Lösung

solution.cpp

solution.cpp

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 6
single

single

some-alt