Du bist hier: Startseite > Entwicklung (C/C++) > C++ Grundlagen > Entscheidungen mit if und switch

Entscheidungen mit if und switch

If Anweisungen

Verzweigungen ermöglichen in Abhängigkeit einer Bedingung eine unterschiedliche Code-Ausführung. Verzweigungen werden in C++ mit Hilfe des Schlüsselwortes if erstellt.
Der grundsätzliche Aufbau einer if-Kontrollstruktur sieht wie folgt aus.

  1. if (BEDINGUNG)
  2. {
  3. ANWEISUNGSBLOCK
  4. }

Die Bedingung muss true zurück liefern, damit der Codeblock ausgeführt werden kann. Die Struktur kann noch erweitert werden.

  1. if (BEDINGUNG)
  2. {
  3. ANWEISUNGSBLOCK
  4. }
  5. else
  6. {
  7. ANWEISUNGSBLOCK
  8. }

Es kann auch nach mehreren Bedingungen geprüft werden. Je nachdem, welche zutrifft wird dann der entsprechende Anweisungsblock ausgeführt.

  1. if (BEDINGUNG)
  2. {
  3. ANWEISUNGSBLOCK
  4. }
  5. else if (ANDERE_BEDINGUNG)
  6. {
  7. ANWEISUNGSBLOCK
  8. }
  9. else
  10. {
  11. ANWEISUNGSBLOCK
  12. }

Ein Bespiel wie sowas im Programm aussehen könnte:

Datei:  Quelldateien/main.cpp
  1. #include <iostream> // std::cout, std::endl, std::cin
  2. #include <stdlib.h> // EXIT_SUCCESS
  3.  
  4. int main(void)
  5. {
  6. int num;
  7. std::cout << "Bitte eine Zahl eingeben: " << std::endl;
  8. std::cin >> num;
  9.  
  10. if (num == 1)
  11. {
  12. std::cout << "Eins" << std::endl;
  13. }
  14. else if (num == 2)
  15. {
  16. std::cout << "Zwei" << std::endl;
  17. }
  18. else
  19. {
  20. std::cout << "Andere Zahl" << std::endl;
  21. }
  22.  
  23. std::cin.get();
  24. return EXIT_SUCCESS;
  25. }

Es gibt noch den Ternären Operator der mit if(....){....}else{....} gleichzusetzen ist. Mann kann ihn gut verwenden, wenn in den Anweisungsblöcken von if und else nur ein Befehl drin steht. Bespiel für if else Variante:

Datei:  Quelldateien/main.cpp
  1. #include <iostream> // std::cout, std::endl, std::cin
  2. #include <stdlib.h> // EXIT_SUCCESS
  3.  
  4. int main(void)
  5. {
  6. int num = 1;
  7. if (num == 1)
  8. {
  9. std::cout << "Eins" << std::endl;
  10. }
  11. else
  12. {
  13. std::cout << "Andere Zahl" << std::endl;
  14. }
  15.  
  16. std::cin.get();
  17. return EXIT_SUCCESS;
  18. }

Beispiel für Ternäre Schreibweise:

Datei:  Quelldateien/main.cpp
  1. #include <iostream> // std::cout, std::endl, std::cin
  2. #include <stdlib.h> // EXIT_SUCCESS
  3.  
  4. int main(void)
  5. {
  6. int num = 1;
  7. (num == 1) ? std::cout << "Eins" << std::endl : std::cout << "Andere Zahl" << std::endl;
  8. // (BEDINGUNG) ? BEFEHL_FUER_WAHR : BEFEHL_FUER_FALSCH ;
  9.  
  10. std::cin.get();
  11. return EXIT_SUCCESS;
  12. }

Switch case Anweisungen

Eine besondere Form der if-else if-else-Kontrollstruktur ist die switch-case-Anweisung.

Datei:  Quelldateien/main.cpp
  1. #include <iostream> // std::cout, std::endl, std::cin
  2. #include <stdlib.h> // EXIT_SUCCESS
  3.  
  4. int main(void)
  5. {
  6. int num;
  7. std::cout << "Gebe eine Zahl zwischen 1 und 3 ein:";
  8. std::cin >> num;
  9.  
  10. switch (num)
  11. {
  12. case 1:
  13. case 3:
  14. {
  15. std::cout << "Ungerade Zahl eingegeben." << std::endl;
  16. break;
  17. }
  18. case 2:
  19. {
  20. std::cout << "Gerade Zahl eingegeben." << std::endl;
  21. break;
  22. }
  23. default:
  24. {
  25. std::cout << "Keine Zahl von 1 bis 3 eingegeben." << std::endl;
  26. break;
  27. }
  28. }
  29.  
  30. std::cin.get();
  31. return EXIT_SUCCESS;
  32. }

Die Meldung, dass eine ungerade Zahl eingegeben wurde, wird nun ausgegeben, wenn die Zahl 1 oder die Zahl 3 vom Anwender eingegeben wurde. Indem hinter case 1: nämlich kein break angegeben wird, wird der darauffolgende Anweisungsblock hinter case 3: ausgeführt - bis die Programmausführung auf ein break trifft und die Kontrollstruktur abbricht.

Kommentare zu diesem Beitrag

Sie müssen angemeldet sein, um eine Nachricht zu erstellen. Anmelden »