2017-10-15 1 views
-1

Also hier ist mein CodeFalscher Eintrag in der switch-Anweisung, wie wird zum ersten Fall zurückgeschleift? C++

int intNumber1, intNumber2, intResult, operation; 
    cout << "enter two integer values: "; 
    cin >> intNumber1 >> intNumber2; 

    cout << "enter (1) for addition, or (2) for subtraction" << endl; 
    cin >> operation; 

    switch (operation) 
    { 

     case '1': 
       intResult = intNumber1 + intNumber2; 
      cout << intResult << endl ; 
       break; 

     case '2': 

       intResult = intNumber1 - intNumber2; 
       cout << intResult << endl; 
       break; 

     default: 
       cout << "wrong entry please enter a valid choice - 1 for addition, or 2 for subtraction. " << endl; 
       cin >> operation; 
       break; 


    } 


    return 0; 

so bin ich nur, wenn/switch-Anweisung verwenden darf und keine Art von Schleifen zu verwenden. Gibt es eine Möglichkeit, das Programm neu zu starten und den Benutzer eine Operation auswählen zu lassen?

+0

Warum sind Sie eine Schleife nicht erlaubt zu benutzen? Genau das würde ein Programmierer in diesem Fall verwenden. –

Antwort

0

Also im Grunde ist das, was ich getan habe, einfach. Ich habe eine Funktion erstellt, die Ihre Switch Cases enthält. Im Grunde genommen führt dies dazu, dass beim Ausführen der Hauptfunktion die userChoice-Funktion ausgeführt wird, die die Eingabeaufforderungen anzeigt und dem Benutzer die Eingabe einer Option ermöglicht. Wenn der Benutzer etwas anderes als 1 oder 2 eingibt, wird der Schalter auf die Standardeinstellung zurückgesetzt, eine Fehlermeldung angezeigt und die Funktion userChoice erneut ausgeführt. Dies kehrt nicht zum ersten Fall zurück und fragt den Benutzer nach dem gewünschten Operator, sondern ruft die Funktion userChoice erneut auf, was wiederum bedeutet, das Programm neu zu starten oder es ohne eine Schleife zu wiederholen und erneut zur Benutzereingabe aufzufordern.

umfassen

#include <iostream> 
using namespace std; 
void userChoice(); //Function prototype 

int main() { 

userChoice(); //Function for menu prompts and user entry 
return 0; 
} 

//Function I created that holds your whole program 

void userChoice() { 
int intNumber1, intNumber2, intResult, operation; 
cout << "enter two integer values: "; 
cin >> intNumber1 >> intNumber2; 

cout << "enter (1) for addition, or (2) for subtraction" << endl; 
cin >> operation; 
switch (operation) 
{ 
case 1: 
    intResult = intNumber1 + intNumber2; 
    cout << intResult << endl; 
    break; 

case 2: 

    intResult = intNumber1 - intNumber2; 
    cout << intResult << endl; 
    break; 

default: 
    cout << "wrong entry. " << 
    endl << "Restarting program."; 
    userChoice(); //Calls/restarts the function 
    break; 
} 
} 
-1

können Sie eine do{}while() verwenden, um einen Zustand zu überprüfen - wenn Sie nicht berechtigt sind, diese verwenden Sie eine label und diese weise goto in Ihrem Standard verwenden, aber verwenden können. Eine andere kreative Idee besteht darin, den Schalter innerhalb einer Funktion zu schalten. Rufen Sie die Funktion und der Schalter wird ausgelöst - dann, wenn falsche Eingabe die Funktion erneut aufrufen - eine Void-Funktion sollte in Ordnung sein für das, was Sie versuchen, in dem Code, den Sie oben angegeben tun. Ich hoffe, diese Antwort hilft!

Verwandte Themen