Switch anweisung
-
Also ich bin c++ anfänger und habe Folgendes Programm Geschrieben :
#include <iostream.h> int main() { int blab = 1; int antwort; while(blab = 1) { cout << "1 = Programm A, 2 = Programm B, 3 = Ende" << endl; cin >> antwort; switch(antwort) { case 1 : cout << "Programm A\n"; break; case 2 : cout << "Programm B\n"; break; case 3 : blab = 0; break; default : cout << "Falsche Eingabe oder Gross geschrieben!\n"; break; } } return 0; }
Die Schleife Funktioniert auch wunderbar, dass heisst wenn ich 1 eingebe dann sagt er Programm A und bei 2 auch Programm B nur wenn ich 3 eingeben dann weist er doch der Variablen den wert 0 zu. Nun sollte doch eigentlich die schleife das Testen und sehen "Aha is net 1 also die Funktionen in der Schleife nicht ausführen und weiter machen", aber das tut er nicht ! Er geht einfach wieder zu beginn der Schleife ! (Ich darf keine IF anweisung und auch keine break oder continue anweisung inerhalb der Schleife haben . Inerhalb der swicht-anweisung schon)
Was mache ich falsch ?
Vielen Dank schonmal im vorraus
Und sry wenn es irgendwo in einer faq steht ... ich habge gesucht aber nichts gefunden.
-
H²O schrieb:
while(blab = 1)
ändern in
while(blab == 1)
Mit operator= wird eine Zuweisung gemacht, daher ist diese Bedingung immer true, da blab immer wieder 1 zugewiesen wird.
-
ARGH bin ich dumm
Ich sollte mir das ab jetzt mal öfters genauer durchlesen ...
Vielen Dank für die schnelle Antwort !
-
Warnungsstufe des Compilers erhöhen ist auch ein Tipp.
Ach und:#include <iostream> using namespace std;
statt
#include <iostream.h>
-
H²O schrieb:
ARGH bin ich dumm
nein. das hat nichts mit dummheit zu tun. vielmehr hat es was damit zu tun, das viele anfänger den zuweisungs-operator (=) mit dem vergleichs-operator (==) verwechseln
schönen abend noch...