我正在学习C++。这里是我的问题:C++简单函数困境
简单的“计算器”程序:读取两个数字和一个符号,将它们传递给函数calculate,返回值或错误,如果禁止输入char。我想出了两个版本的函数,我不知道哪一个是“正确的”。他们是:
第一个直接打印,这不是一个好的做法(是吗?)。
void calculate(int x, int y, char s) {
switch (s) {
case ('+'): {
std::cout << x + y << "\n";
}
case ('-'): {
std::cout << x - y << "\n";
}
case ('*'): {
std::cout << x * y << "\n";
}
case ('/'): {
std::cout << x/y << "\n";
}
default: {
std::cout << "Wrong sign input. Choose on of the following four:+-*/\n";
}
}
}
第二个确实只有一个工作了,也有缺陷,例如,如果输入的是“5”,“6”和“ - ”,它会返回-1,它会通过一个错误处理呼叫者,召集者。
int calculate(int x, int y, char s) {
switch (s) {
case ('+'): {
return x + y;
}
case ('-'): {
return x - y;
}
case ('*'): {
return x * y;
}
case ('/'): {
return x/y;
}
default: {
return -1;
}
}
}
你会在给定的情况下做什么?
*并且由主叫方将其作为错误处理。*然后修复主叫方。恕我直言第二个功能应该使用。计算和打印应该是分开的。 – NathanOliver
二是最好,错误时抛出异常。 –
那么如何判断-1结果和-1错误? – KOKO