switch case in eine Schleife setzen



  • Moin Leute,
    bin ein blutiger Anfänger in C++ und wollte mir heute mal einen kleinen Taschenrechner basteln.
    Hat alles soweit funktioniert, aber ich möchte dass sich das Programm immer wiederholt bzw. neustartet.
    Das heißt ich gebe jetzt z.B bei der Addition 2+7 ein wird das Programm beendet, aber ich möchte danach noch eine andere Eingabe machen.
    Ich hab mir gedacht dass man dies in Form von einer Schleife machen kann.
    Also das dies solange wiederholt wird bis ich etwas eingebe wie z.B /q

    Danke im Voraus, und hier ist der Code:

    #include <iostream>
    
    using namespace std;
    
    int main(void)
    {
    	cout << "Bitte waehle eine Rechenmethode aus\n1. Addition\n2. Subtraktion\n3. Multiplikation\n4. Division" << endl;
    	cout << "Du kannst jeder Zeit /q schreiben um das Programm zu beenden." << endl; 
    
    	char auswahl;
    	cin >> auswahl;
    
    	switch( auswahl ) {
    			case'1':
    			cout << "Bitte waehle deine erste Zahl aus: ";
    			int zahl_1;
    			cin >> zahl_1;
    			cout << "Bitte waehle deine zweite Zahl aus: ";
    			int zahl_2;
    			cin >> zahl_2;
    			int ergebnis_add;
    			ergebnis_add = zahl_1 + zahl_2;
    			cout << "Das Ergebnis von " << zahl_1 << "+" << zahl_2 << " ist " << ergebnis_add << endl;
    			break;
    
    			case'2':
    			cout << "Bitte waehle deine erste Zahl aus: ";
    			float zahl_3;
    			cin >> zahl_3;
    			cout << "Bitte waehle deine zweite Zahl aus: ";
    			float zahl_4;
    			cin >> zahl_4;
    			float ergebnis_sub;
    			ergebnis_sub = zahl_3 - zahl_4;
    			cout << "Das Ergebnis von " << zahl_3 << "-" << zahl_4 << " ist " << ergebnis_sub << endl;
    			break;
    
    			case'3':
    			cout << "Bitte waehle deine erste Zahl aus: ";
    			float zahl_5;
    			cin >> zahl_5;
    			cout << "Bitte waehle deine zweite Zahl aus: ";
    			float zahl_6;
    			cin >> zahl_6;
    			float ergebnis_mul;
    			ergebnis_mul = zahl_5 * zahl_6;
    			cout << "Das Ergebnis von " << zahl_5 << "x" << zahl_6 << " ist " << ergebnis_mul << endl;
    
    			case'4':
    			cout << "Bitte waehle deine erste Zahl aus: ";
    			float zahl_7;
    			cin >> zahl_7;
    			cout << "Bitte waehle deine zweite Zahl aus: ";
    			float zahl_8;
    			cin >> zahl_8;
    			float ergebnis_div;
    			ergebnis_div = zahl_7 / zahl_8;
    			cout << "Das Ergebnis von " << zahl_7 << "/" << zahl_8 << " ist " << ergebnis_div << endl;	
    	}
    
    }
    

  • Mod

    Deepimpact schrieb:

    Ich hab mir gedacht dass man dies in Form von einer Schleife machen kann.

    Das ist richtig. Hast du auch eine Frage?



  • Ja 😃

    Also mit welcher mache ich das und wie genau? Also wo muss ich sie hinsetzten?



  • int main(void)
    {
        cout << "1. Addition\n2. Subtraktion\n3. Multiplikation\n4. Division" << endl; 
    	cout << "Du kannst jeder Zeit /q schreiben um das Programm zu beenden." << endl; 
    
    	char auswahl = 0; 
    	while(auswahl != 'q')
    	{
    		cout << endl << "Bitte waehle eine Rechenmethode aus\n";
    		cin >> auswahl; 
    
    		switch( auswahl )
                    { 
    		   // ...
    		} 
    	}
    }
    


  • Wenn ich jetzt /q mache kommt 2 mal Bitte waehle eine Rechenmethode aus



  • Wenn du die Schleife genauso geschrieben hast wie DarkShadow44, dann musst du nicht /q sondern nur q eingeben.



  • Wenn ich jetzt /q mache kommt 2 mal Bitte waehle eine Rechenmethode aus

    In einen char passt nur ein Zeichen. Wenn du zwei eingibst und dann Enter drückst wird nur der erste eingelesen. Dann beim nächsten Mal der zweite automatisch, weil noch was in cin steht von der letzten Eingabe. 😉



  • Hab es schon selbst gemerkt 😃

    Trotzdem danke für eure schnelle Hilfe


Anmelden zum Antworten