我知道一个函数只能返回一种类型的值,但我不确定如何用它来表达这一点。
我的函数找到了一个阶乘,如果输入小于0,我想打印一条错误信息。
int fact(int a){
if (a>=0){
//calculate factorial
}
return(product);
}
else {
cout << "Factorials of negative numbers are not defined\n";
return(0);
}
}
这样可行,但我只想在a
小于0时显示错误消息。现在,我的负数输出是
Take the factorial of: -2
Factorials of negative numbers are not defined
0
我知道这是一个小小的抱怨,但有没有办法摆脱0?返回NULL
仍会打印0.从else语句中删除return(0)
会打印4757824。
答案 0 :(得分:3)
“关注点分离”您的fact()
方法既计算阶乘,又打印错误。它真的不应该两个都做!
为什么错误发生时fact()
会返回一些已知但不合法的值(比如-1)。然后,调用代码可以检查fact()
是否有效。
如果输入太大,不要忘记你会有另一个错误条件......