我正在用 C++ 编写一个简单的计算器(我正在学习课程)。当检查是否被零除时, continue 会进入循环的下一次迭代,而当检查 isdigit() 时,循环将变为无限。
课程本身:
#include <iostream>
using std::cout;
double Calc::Calculate(double a, char operation, double b)
{
switch (operation)
{
case '+':
return a + b;
case '-':
return a - b;
case '*':
return a * b;
case '/':
return a / b;
default:
return 0.0;
}
}
检查并输出:
while (true)
{
cin >> a >> operation >> b;
if ( !(isdigit(a)) || !(isdigit(b)) ) {
cout << "Я считаю только числа :(\n";
continue;
}
else if (b == 0 && operation == '/') {
cout << "На ноль дельть нельзя!\n";
continue;
}
else {
result = c.Calculate(a, operation, b);
cout << a << " " << operation << " " << b << " = " << result << endl;
}
}