Switch-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
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 }
-
Der Ausdruck wird einmal ausgewertet und das Programm springt zum entsprechenden
casebasierend auf dem Wert des Ausdrucks; -
Jeder
casesteht 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
defaultist 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
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
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
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
Sie entwickeln ein Wochenplaner-System, das den Namen des Wochentags anhand seiner Nummer zurückgibt (1 für Monday, 2 für Tuesday usw.).
- Verwenden Sie innerhalb der Funktion
getDayNameeineswitch-Anweisung fürdayNumber:- Weisen Sie für jeden Fall von
1bis7den entsprechenden Tagesnamen ("Monday","Tuesday", ...,"Sunday") der VariablendayNamezu. - 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.
- Weisen Sie für jeden Fall von
- Geben Sie den Wert von
dayNameaus der Funktion zurück.
Beispiel
getDayName(1) → "Monday"
getDayName(5) → "Friday"
getDayName(9) → "Invalid day number"
Lösung
solution.cpp
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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?
Awesome!
Completion rate improved to 7.69
Switch-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
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 }
-
Der Ausdruck wird einmal ausgewertet und das Programm springt zum entsprechenden
casebasierend auf dem Wert des Ausdrucks; -
Jeder
casesteht 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
defaultist 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
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
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
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
Sie entwickeln ein Wochenplaner-System, das den Namen des Wochentags anhand seiner Nummer zurückgibt (1 für Monday, 2 für Tuesday usw.).
- Verwenden Sie innerhalb der Funktion
getDayNameeineswitch-Anweisung fürdayNumber:- Weisen Sie für jeden Fall von
1bis7den entsprechenden Tagesnamen ("Monday","Tuesday", ...,"Sunday") der VariablendayNamezu. - 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.
- Weisen Sie für jeden Fall von
- Geben Sie den Wert von
dayNameaus der Funktion zurück.
Beispiel
getDayName(1) → "Monday"
getDayName(5) → "Friday"
getDayName(9) → "Invalid day number"
Lösung
solution.cpp
Danke für Ihr Feedback!
single