[Anfänger] | Ausgabe gibt "falsch" aus



  • Hallo, ich bin neu in der Sprache C++ und habe mir auch ein Buch gekauft. Allerdings komme ich einfach nicht weiter weil ich meinen Denkfehler nicht finde. Und zwar gibt mir folgender Quelltext "falsche" Daten aus:

    #include <iostream>
    using namespace std;
    
    enum Ampel {rot, gelb, gruen};
    
    int main() {
    	Ampel ampel = rot;
    
    	for(int n = 0; n < 3; ++n) {
    		switch(n) {
    		case rot: cout << "ROT" << endl;
    		case gelb: cout << "GELB" << endl;
    		case gruen: cout << "GRUEN" << endl;
    		}
    
    		ampel = static_cast<Ampel>(ampel + 1);
    	}
    }
    

    Es erscheint folgende Ausgabe:

    ROT
    GELB
    GRUEN
    GELB
    GRUEN
    GRUEN

    Allerdings soll diese so aussehen:

    ROT
    GELB
    GRUEN

    Kann mir da eventuell einer bei helfen und mir sagen was ich da falsch mache?



  • Wenn ein case-Zweig als wahr erkannt wird, läuft das Programm von da ab sequentiell weiter, und führt auch die zu den folgenden case-Zweigen gehörenden Instruktionen aus.
    Wenn das nicht gewünscht ist, schließt man einen case-Zweig mit break ab:

    switch(...)
    {
      case bla:
        ... 
        ...
        break;
      case blup:
        ...
        break;
      ...
    


  • Öhm :o

    .<

    Ja, danke 😛
    Jetzt bin ich wieder schlauer 💡


Anmelden zum Antworten