我在切换之前的cin之后使用了cout语句来确定我遇到了第二个数字和字符op的问题,并且出于某种原因我进入了无限循环!我有一种感觉,我在语法上犯了一个小错误,但我无法弄清楚它是什么.
#include<iostream>
using namespace std;
int main()
{
float a, b;
char op, ans;
do {
cout << "Enter first number, operator, second number: ";
cin >> a;
cin >> b;
cin >> op;
cout << "first number is: " << a << "second number is: " << b << "operator is: " << op;
switch (op) {
case '/':
cout << "answer = " << a / b << endl;
break;
case '*':
cout << "answer = " << a * b << endl;
break;
case '+':
cout << "answer = " << a + b << endl;
break;
case '-':
cout << "answer = " << a - b << endl;
break;
}
cout << "again? Y/N";
cin >> ans;
} while (ans != 'N' || ans != 'n');
cout << endl;
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
ans总是不等于n或N.你的OR条件总是正确的.尝试将其切换为
while(ans == 'Y' || ans == 'y')
Run Code Online (Sandbox Code Playgroud)