簡體   English   中英

為什么我的“ else if”陳述不起作用?

[英]Why isn't my “else if” statement working?

由於某種原因,我的else if語句不起作用。 當我用輸入“ 20”運行代碼時,我的else if語句應該對此進行校正時,我得到了階乘的表達式然后是“ 20”。

#include <iostream>

unsigned int factorial(unsigned int number);

int main()
{
    unsigned int number;
    std::cout << "Please enter a positive interger. ";
    std::cin >> number;
    std::cout << "facorial of " << number << " = " << factorial(number);
    return 0;
}

unsigned int factorial(unsigned int number)
{
    if (number > 1 && number < 20) {
        return number * factorial(number - 1);
    }
    else if (number >= 20) {
        std::cout << "error" << std::endl;
    }
    else
        return 1;
}

如果您沒有從其他項目中返回,那么會導致階乘函數產生未定義的返回: 如果我不將返回值放入其原型返回值的函數中,該怎么辦

您得到的數字不是函數的結果,而是一個未定義的值。

#include <iostream>

unsigned int factorial(unsigned int number);

int main()
{
    unsigned int number;
    std::cout<< "Please enter a positive interger. ";
    std::cin >> number;
    std::cout << "facorial of " << number << " = " << factorial(number);
    return 0;
}

unsigned int factorial(unsigned int number)
{
    if (number > 1 && number < 20){
        return number * factorial(number - 1);
        }
    else if (number >= 20){
        std::cout << "error" << std::endl;
        return 0;
        }
    else
        return 1;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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