我是C ++的初学者,距开始学习仅一周,所以请您原谅我的愚蠢问题。我编写了一个C ++程序,该程序根据给定的数字计算除,乘,加和减。我声明了一个布尔值n用于控制非法的操作员条件。(+,-,*和/以外的字符)在程序开始时为true,这将迫使用户输入2个数字和一个运算符。然后在while命令中输入条件来控制操作。当给出非合法符号时,n为假。这将强制程序在while语句中执行第二个语句。然后该语句输出一个文本,指出“您的输入是非法的。”然后将n设置为true,这将使程序在有条件的情况下首先执行并获得再次输入。 但是当我运行程序并输入非法运算符(即q)时,程序会永远休眠。我的错误在哪里? 这是代码:
#include <iostream>
using namespace std;
int main() {
bool n;
double x;
string operation;
double y;
n = true;
while (n = true) {
cin >> x;
cin >> operation;
cin >> y;
if (operation.compare("+") == 0) {
cout << x + y;
break;
}
if (operation.compare("-") == 0) {
cout << x - y;
break;
}
if (operation.compare("*") == 0) {
cout << x * y;
break;
}
if (operation.compare("/") == 0) {
cout << x / y;
break;
} else {
n = false;
}
}
while (n = false) {
cout << "Your input is illegal." << endl;
n == true;
}
}