繁体   English   中英

C ++根据输入返回字符串或整数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM