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


Anmelden zum Antworten