Kursinhalt
C++ Bedingte Anweisungen
C++ Bedingte Anweisungen
Switch-Anweisung
Die switch
-Anweisung ist ebenfalls eine der Kontrollstrukturen, die die Entscheidungsfindung in Ihren Programmen vereinfacht. Sie bietet eine effiziente Möglichkeit, einen Ausdruck zu bewerten und verschiedene Codeblöcke basierend auf dem Wert dieses Ausdrucks auszuführen. Dies kann besonders nützlich sein, wenn es um eine große Anzahl von Verzweigungsbedingungen geht.
Sie ist in erster Linie dafür ausgelegt, mit numerischen Werten wie Ganzzahlen (int
) und Zeichen (char
) zu arbeiten.
switch
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; -
Jedes
case
repräsentiert einen bestimmten Wert oder eine Menge von Werten, die der Ausdruck möglicherweise übereinstimmt; -
Die
break
-Anweisung wird verwendet, um den switch-Block zu verlassen, nachdem der Code für einen bestimmten Fall ausgeführt wurde; -
Das
default
ist optional und wird verwendet, wenn keiner der angegebenen Fälle mit dem Ausdruck übereinstimmt. Es fungiert als Auffangoption.
Angenommen, Sie besitzen ein Restaurant und möchten ein Menü basierend auf numerischen Codes bereitstellen. Hier ist die Code-Darstellung der Menüelemente.
main
#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, Sie können dies mit einer einfachen if
-Anweisung erreichen, und es würde ungefähr so aussehen:
main
#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 wird genauso funktionieren und wie erwartet, aber es ist im Allgemeinen besser, eine switch
-Anweisung zu verwenden, da sie eine klarere, lesbarere und, was am wichtigsten ist, leichter zu wartende und skalierbare Möglichkeit bietet, diese Art von Kontrollfluss zu verwalten.
Das Auslassen des break
-Schlüsselworts in einer Switch-Anweisung kann zu unerwartetem Programmverhalten führen, da der Code weiter in nachfolgende Fälle ausgeführt wird. Das absichtliche Auslassen von break
kann jedoch verwendet werden, um mehrere Fälle innerhalb desselben Codeblocks zu verwalten. Dieser Ansatz, bekannt als Fall-Through, ermöglicht es Ihnen, verwandte Fälle zusammen zu behandeln.
main
#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
- Schreiben Sie eine
switch
-Anweisung, die den entsprechenden Wochentag basierend auf dem Wert vonday_of_week
ausgibt. - Wenn der Wert kein gültiger Tag ist, geben Sie
The day doesn't exist
in der Konsole aus.
Lösung
solution
Danke für Ihr Feedback!
Switch-Anweisung
Die switch
-Anweisung ist ebenfalls eine der Kontrollstrukturen, die die Entscheidungsfindung in Ihren Programmen vereinfacht. Sie bietet eine effiziente Möglichkeit, einen Ausdruck zu bewerten und verschiedene Codeblöcke basierend auf dem Wert dieses Ausdrucks auszuführen. Dies kann besonders nützlich sein, wenn es um eine große Anzahl von Verzweigungsbedingungen geht.
Sie ist in erster Linie dafür ausgelegt, mit numerischen Werten wie Ganzzahlen (int
) und Zeichen (char
) zu arbeiten.
switch
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; -
Jedes
case
repräsentiert einen bestimmten Wert oder eine Menge von Werten, die der Ausdruck möglicherweise übereinstimmt; -
Die
break
-Anweisung wird verwendet, um den switch-Block zu verlassen, nachdem der Code für einen bestimmten Fall ausgeführt wurde; -
Das
default
ist optional und wird verwendet, wenn keiner der angegebenen Fälle mit dem Ausdruck übereinstimmt. Es fungiert als Auffangoption.
Angenommen, Sie besitzen ein Restaurant und möchten ein Menü basierend auf numerischen Codes bereitstellen. Hier ist die Code-Darstellung der Menüelemente.
main
#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, Sie können dies mit einer einfachen if
-Anweisung erreichen, und es würde ungefähr so aussehen:
main
#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 wird genauso funktionieren und wie erwartet, aber es ist im Allgemeinen besser, eine switch
-Anweisung zu verwenden, da sie eine klarere, lesbarere und, was am wichtigsten ist, leichter zu wartende und skalierbare Möglichkeit bietet, diese Art von Kontrollfluss zu verwalten.
Das Auslassen des break
-Schlüsselworts in einer Switch-Anweisung kann zu unerwartetem Programmverhalten führen, da der Code weiter in nachfolgende Fälle ausgeführt wird. Das absichtliche Auslassen von break
kann jedoch verwendet werden, um mehrere Fälle innerhalb desselben Codeblocks zu verwalten. Dieser Ansatz, bekannt als Fall-Through, ermöglicht es Ihnen, verwandte Fälle zusammen zu behandeln.
main
#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
- Schreiben Sie eine
switch
-Anweisung, die den entsprechenden Wochentag basierend auf dem Wert vonday_of_week
ausgibt. - Wenn der Wert kein gültiger Tag ist, geben Sie
The day doesn't exist
in der Konsole aus.
Lösung
solution
Danke für Ihr Feedback!