控制可能到达非空函数的末端

C++ ERROR: Control may reach end of non-void function

本文关键字:函数 控制      更新时间:2023-10-16

嗨,我正在Xcode中编写一些c++代码,我得到这个错误Control may reach end of non-void function。我也使用虚幻引擎标准的代码,所以这就是FTextint32的来源。下面是我的代码:

do {
// get a guess from the player
    int32 CurrentTry = BCGame.GetCurrentTry();
    std::cout << std::endl;
    std::cout << "Try " << CurrentTry << ". Enter your guess: ";
    FText Guess = "";
    std::getline(std::cin,Guess);
    Status = BCGame.CheckGuessValidity(Guess);
    switch (Status)
    {
    case EGuessStatus::Wrong_Length:
        std::cout << "Please enter a " << BCGame.GetHiddenWordLength() << " letter word.n";
        break;
    case EGuessStatus::Not_Isogram:
        std::cout << "Please enter a word without repeating letters.n";
        break;
    case EGuessStatus::Not_Lowercase:
        std::cout << "Please enter all lowercase letters.n";
        break;
    default:
        return  Guess;
    }
} while (Status != EGuessStatus::OK);
}

您没有显示完整的函数,但显然它被声明为返回一些东西;开关中的default路径也返回Guess

然而,交换机中的其他三个路径不返回任何东西,流在交换机后面,没有更多的东西。所以你有一个不返回任何东西的函数,但是它需要返回一些东西——就像消息所说的。