簡體   English   中英

C++ // 並非所有的控制路徑都返回一個值

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM