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 语句中每个 case 的末尾加上a 。

于 2013-10-13T22:27:36.243 回答