0

私はここでは初心者のプログラマーですので、親切にしてください:

単純な算術演算を実行する C++ プログラムを作成しています。構文的にはすべて正しいですが、複数の回答が表示されます。たとえば、+ が使用されている場合、回答がコンピューターの後に表示される個別の cout ステートメントのそれぞれが表示されますが、他の演算子としての後続の cout ステートメント (-、*、/) が表示されます。それらのほんの一部です。ここでコードを使用できます。

//This program will take two integers and compute them in basic arithmetic
//in the way that a simple calculator would.

#include <iostream>
using namespace std;


int main ()
{
    int num1;
    int num2;
    double sum, difference, product, quotient;
    char operSymbol;

    cout << "Please enter the first number you would like to equate: ";
    cin >> num1;
    cout << "Please enter the second number: ";
    cin >> num2;

    cout << "Please choose the operator you would like to use (+, -, *, /): ";
    cin >> operSymbol;
    switch (operSymbol)
    {
    case '+':
            sum = num1 + num2;
            cout << "The sum is: " << sum << endl;
    case '-':
            difference = num1 - num2;
            cout << "The difference is: " << difference << endl;
    case '*':
            product = num1 * num2;
            cout << "The product is: " << product << endl;
    case '/':
            quotient = num1 / num2;
            cout << "The quotient is: " << quotient << endl;
    }
system("Pause");
return 0;
}
4

3 に答える 3

2

caseすべてのラベルの下でコードの実行を明示的に終了する必要があります。それ以外の場合は、次の にフォールスルーcaseます。から飛び出すを使用breakする必要があります。switch

case '+':
        sum = num1 + num2;
        cout << "The sum is: " << sum << endl;
        break;                                    // <-- end of this case
于 2013-10-13T22:28:30.463 に答える
0

break各ケースの最後にステートメントが必要です。それ以外の場合、プログラムの実行は次のケースに進みます。そのため、ケースを処理しているときにすべてのケースが処理されていることがわかります+breakステートメントは、それが現れる最も近い囲みループまたは条件ステートメントの実行を終了します。

于 2013-10-13T22:27:14.977 に答える
0

break;switch ステートメントの各ケースの最後にaを付けます。

于 2013-10-13T22:27:36.243 に答える