我在切换之前的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;
}
答案 0 :(得分:5)
并且总是不等于或等于。你的OR条件总是如实。尝试将其切换为
while(ans == 'Y' || ans == 'y')
答案 1 :(得分:4)
您希望自己的条件是:
} while (ans != 'N' && ans != 'n');
它不能同时是'N'和'n'。如果是这样的话,世界可能会消失在一个厄运的漩涡中。
答案 2 :(得分:1)
你需要改变这一行:
cin&gt;&gt;一;
cin&gt;&gt; B;
cin&gt;&gt;运算;
到这一个:
cin&gt;&gt;一;
cin&gt;&gt;运算;
cin&gt;&gt; B;