2016-10-25 11 views
0

私の大学では、whileループをカバーしていないので、私は前に試してみたいと思っていましたが、問題を抱えています。異なる機能を実行したいユーザの入力に基づいて、Aは加算を実行し、Bは減算を行い、Cはプログラムを終了する。
私が書いたプログラムは、ユーザーが入力した内容に関係なく、これらの機能を順番に実行し、正しく動作させる方法は不明です。C++ do whileループのアドバイス

アドバイスをいただければ幸いです。

+0

を与えることを望んでいる - それは「ケーススイッチを」使用することをお勧めします

  • それらをきれいにループ、そしてあなたのすべてのwhileループは無駄になります。 whileループの動作を調べることができます。 – Carcigenicate

  • +0

    あなたはそれを使用している正しい方法ではありません。これは入力検証として使用する必要があります。例えば:do {cout << "選択肢を入力" cin >> choice} while(choice!= 'A' || choice!= 'B' || choice!= C);メニューの一部ではない間違った選択項目を入力した場合、ユーザーに再度質問します –

    +0

    最後に余分なwhileループとセミコロンもありますか? whileループではdo-whileではないセミコロンだけを入れます –

    答えて

    0

    注意すべき事項ユーザーは選択肢の文字を入力しているので、userChoiceを文字にします。この場合、入力検証のためにdo-whileがどのように使用されているかに注目してください。私は、ステートメントの終わりにセミコロンで余分なwhileループを変更しました。あなたはifとelse ifを "menu driven program"というスイッチで置き換えることができます。ここにあなたが望む作業プログラムがあります。あなたは全体の条件文の周りのDO-しばらくたくない場合は、それはC.

    ない間 "
    #include <iostream> 
    #include <string> 
    
    using namespace std; 
    int main() 
    { 
        char userChoice; 
    
        int vaulue1; 
        int vaulue2; 
    
        int addtionValue; 
        int subtractionValue; 
    
        cout << "Choice A: will preform an addition" << endl; 
        cout << "Choice B: will preform a subtraction" << endl; 
        cout << "Choice C: will quit\n" << endl; 
    
    
        do 
         { 
         cout << "Enter your choice\n" << endl; 
         cin >> userChoice; 
         } while(userChoice != 'A' && userChoice != 'B' && userChoice != 'C'); 
    
        if(userChoice == 'A') 
         { 
         cout << "Addition\n" << endl; 
         cout << "Please enter the first value you want to add\n" << endl; 
         cin >> vaulue1; 
         cout << "Please enter the second value you want to add\n" << endl; 
         cin >> vaulue2; 
    
         addtionValue = vaulue1 + vaulue2; 
         cout << "The addtion answer is " << addtionValue << endl; 
         } 
    
        else if(userChoice == 'B') 
         { 
    
         cout << "Subtraction\n" << endl; 
         cout << "Please enter the first value you want to subtract\n" << endl; 
         cin >> vaulue1; 
         cout << "Please enter the second value you want to subtract\n" << endl; 
         cin >> vaulue2; 
    
         subtractionValue = vaulue1 - vaulue2; 
         cout << "The subtract answer is " << subtractionValue << endl; 
         } 
    
        else if(userChoice == 'C') 
         { 
    
         cout << "Exit "; 
         return -1; 
         } 
    
        return 0; 
    } 
    
    +0

    これを手伝ってくれてありがとうございました。私はdoの目的と混同されていたようですが、正しく実装する方法はありますか? 。 –

    +0

    @ M.Stran94これがあなたの質問に答えたと思えば、この回答に合格とマークしてください。他の人もこれを使うことができます!問題ない! –

    0
    1. 一つだけを使用する必要があり、すべての条件文の周りにそれを持っているとチェック入力の検証としてそれを使用します"while - 間違いなく最初のものは
    2. " whiles "は空のループです。ながら...

    あなたが入力としてAを入力しながら、あなたの方法はAにここで行うよりも、ループしながら、あなたはより多くを持っている別の1