while schleife.
-
Hallo,
Kann mir bitte einer erkleren wie While funktioniert ?
Ich hab immer nocht nicht ganz verstanden wie man die abricht .
Mein Beispiel :
Ich will das wenn ich 0 sende das Schleife sich abricht .
Danke#include<iostream> #include<string> using namespace std; int rechner(); int main() { int k; k = 1; while(k != 0) { rechner(); } return 0; } int rechner() { int zahl1; int zahl2; char zeichen; int antwort; cout << "Taschenrechner" << endl; cout << "Um das Programm zu beenden bitte 0 drücken" << endl; cin >> zahl1 >> zeichen >> zahl2 ; switch (zeichen) { case '+' : antwort = zahl1 + zahl2 ; break; case '-' : antwort = zahl1 - zahl2 ; break; case '*' : antwort = zahl1 * zahl2 ; break; case '/' : antwort = zahl1 / zahl2 ; break; case ' ' : "Unglücklige eingabe..."; break; } cout << "Antwort: " << zahl1<< zeichen << zahl2<< "="<< antwort<<endl; return antwort; }
-
Du willst mit der Rückgabe von
rechner()signalisieren, dass die Schleife abgebrochen werden soll? Dann musst du die Rückgabe auch k zuweisen.while(k != 0) { k=rechner(); }Wenn du k nie änderst, wird die Abbruchbedingung auch nie erfüllt werden...
EDIT: Du musst aber schon noch dafür sorgen, dass die 0 auch irgendwo ankommt. Das sehe ich da noch nicht...
EDIT: Außerdem wäre es unglücklich, die 0 für Abbruch über die normale Rückgabe zu lösen. Da könnte ja auch eine 0 als Rechenergebnis rauskommen. Bastle dafür lieber einen by-reference Parameter oder.
-
Wenn du ein Leerzeichen eingibst, wird erstens antwort überhaupt nicht gesetzt und zweitens heißt es "Unglückliche Eingabe".
-
Danke für Ihre Hilfe

Weiß jetzt alles darüber was ich wissen wohlte