int bounce(int n) {
if (n == 0)
{
cout << "0" << endl;
}
if (n > 0)
{
cout << n << endl;
bounce(n - 1);
cout << n << endl;
}
}
int main()
{
int x;
cout << "Choose a number: ";
cin >> x;
cout << bounce(x) << endl;
system("pause");
return 0;
}
我最近第一次用C ++开始(2小时前左右:D),我遇到的问题是“Bounce:并非所有控制路径都返回值”,我不知道如何解决这个问题,显然我需要返回0;或功能中的某个地方,但我不知道它在哪里,而不会破坏它的工作原理
示例:bounce(5)==&gt;打印出5 4 3 2 1 0 1 2 3 4 5
TL DR:将退回放置在哪里以使其正常工作。
答案 0 :(得分:7)
实际上,您的控制路径都没有返回值。由于您只使用该功能在屏幕上打印某些内容,因此无需返回任何内容。只需返回类型为void:
void bounce(int n) {
/*...*/
}
然后不要cout
函数调用的结果(一旦你使它成为void
函数不会以任何方式返回任何东西),即代替:
std::cout << bounce(x) << std::endl;
简单地写
bounce(x);
您已在功能内的屏幕上打印。
答案 1 :(得分:2)
在C ++中定义函数时,请在函数名前指定返回类型。
您的int bounce()
函数被声明为返回一个整数但它根本不返回任何值。因此,这会导致错误。
您可以使用void bounce()
声明您的函数,它告诉编译器您的函数不会返回任何值。这将消除错误。
注意:虽然您使用cout
来显示您的值,但这与我们讨论的方式返回值不同。使用return
关键字指定返回值。