[英]C++ // Not all control paths return a value
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),我遇到的問題是“反彈:並非所有控制路徑都返回一個值”,我不知道如何解決這個問題,顯然我需要返回0; 或函數中某處的某些東西,但我無法在不破壞其工作方式的情況下找出何處。
示例:bounce(5) ==> 打印出 5 4 3 2 1 0 1 2 3 4 5
TL DR:在反彈中放置返回的位置以使其正常工作。
實際上,您的控制路徑都沒有返回值。 由於您僅使用該函數在屏幕上打印某些內容,因此它不必返回任何內容。 只需使返回類型無效:
void bounce(int n) {
/*...*/
}
然后不cout
函數調用的結果(一旦你讓它void
的功能不會返回任何東西無論如何),即代替:
std::cout << bounce(x) << std::endl;
簡單地寫
bounce(x);
您已經在函數內的屏幕上打印了。
在 C++ 中定義函數時,在函數名稱之前指定返回類型。
您的int bounce()
函數被聲明為返回一個整數,但它根本不返回任何值。 因此,這會導致錯誤。
您可以使用void bounce()
聲明您的函數,它告訴編譯器您的函數不會返回任何值。 這將消除錯誤。
注意:雖然您使用cout
來顯示您的值,但這與我們所說的返回值的方式不同。 使用return
關鍵字指定返回值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.