Programm übersieht "break" in switch-Anweisung.
-
hi,
ich bin dabei C++ zu lernen und habe eine Frage.
Ich möchte ein Programm schreiben, wo man zwei Zahlen eingiebt und dann auswählen kann, ob man + oder - rechnet. (eigendlich ganz einfach)
Nur irgendwie kommt es immer zu einer Endlosschleife.
Ich weiß, dass ich so etwas wie "var3++" anhängen muss, aber ich möchte ja dass nicht danach - gerechnet wird, sondern dass man dann nochmal auswählen kann, ob - oder + rechnet.
Mein Code://Rechnen.cpp #include <iostream> using namespace std; int main(void) { int var1; int var2; int var3; cout << "Eine Zahl bitte\n"; cin >> var1; cout << "Zweite Zahl bitte\n"; cin >> var2; cout << "-1- = +\n" << "-2- = -\n" << "-3- = Ende\n" << "Deine Wahl: "; cin >> var3; while( var3 != 3 ) { switch( var3 ) { case 1 : cout << "Die Aufgabe: " << var1 << "+" << var2 << '\n'; cout << "= " << var1+var2 << '\n'; break; case 2 : cout << "Die Aufgabe: " << var1 << "-" << var2 << '\n'; cout << "= " << var1-var2 << '\n'; break; case 3 : cout << "Wird beendet...!\n"; break; } } return 0; }MfG
AlphaMensch
-
Ich vermutem Du brauchst
//Rechnen.cpp #include <iostream> using namespace std; int main(void) { int var1; int var2; int var3; cout << "Eine Zahl bitte\n"; cin >> var1; cout << "Zweite Zahl bitte\n"; cin >> var2; cout << "-1- = +\n" << "-2- = -\n" << "-3- = Ende\n" << "Deine Wahl: "; cin >> var3; while( var3 != 3 ) { switch( var3 ) { case 1 : cout << "Die Aufgabe: " << var1 << "+" << var2 << '\n'; cout << "= " << var1+var2 << '\n'; break; case 2 : cout << "Die Aufgabe: " << var1 << "-" << var2 << '\n'; cout << "= " << var1-var2 << '\n'; break; case 3 : cout << "Wird beendet...!\n"; break; } cout << "-1- = +\n" << "-2- = -\n" << "-3- = Ende\n" << "Deine Wahl: "; cin >> var3; } return 0; }
-
Vollziehe mal im Kopf nach, was hier passiert:
while( var3 != 3 ) { switch( var3 ) { case 1 : cout << "Die Aufgabe: " << var1 << "+" << var2 << '\n'; cout << "= " << var1+var2 << '\n'; break; case 2 : cout << "Die Aufgabe: " << var1 << "-" << var2 << '\n'; cout << "= " << var1-var2 << '\n'; break; case 3 : cout << "Wird beendet...!\n"; break; } }Da kommt es natürlich zu einer Endlosschleife. Wenn du allerdings in jedem Schleifendurchlauf den Benutzer nach einer Eingabe fragst, ist das nicht mehr so
Das while also 2 Zeilen höher setzen, vor cout << "-1-...";
-
Super!

genauso wollte ich es haben.
DANKE!