【发布时间】:2019-04-02 22:37:27
【问题描述】:
我正在编写一个简单的阶乘函数来练习 C++ 中的递归。 我想用三元格式写它,但它不起作用,所以我先把它写出来,看看它是否能以更传统的方式工作。
三进制格式:
num > 1 ? num * factorial(num-1) : return 1;
传统:
if (num > 1){
return num * factorial(num-1);
}
else {
return 1;
}
我只是打印 factorial(5) 的结果,它应该显示 120。虽然它适用于第二个,但它不适用于第一个。为什么我不能使用三元格式的 return?还是我用错了?
【问题讨论】:
-
因为
return不是表达式。
标签: c++ return-value ternary-operator