[英]C++ return a string or an int depending on input
我知道一个函数只能返回一种类型的值,但是我不确定该如何表达。
我的函数找到一个阶乘,如果输入小于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。
“关注点分离”您的fact()
方法既计算阶乘又打印错误。 确实不应该两者兼而有之!
为什么发生错误时, fact()
为什么不返回一些已知但不合法的值(例如-1)。 然后,调用代码可以检查fact()
是否有效。
如果输入太大,别忘了您还会遇到另一个错误情况...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.