如何编写正确的“布尔”功能?

Sei*_*tem -2 c++ search char

我的代码有问题。我在上面写了一个布尔函数int main()

bool currency_(const char c)
{
    while (c==' ')
    {
        if (c==('p', 't', 'e', 'd'))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望程序能够正常工作,但是在编译时却显示“控制到达无效功能的结尾”。

Rem*_*eau 6

您的功能没有意义。

如果c是空格字符,则您的if语句(您是否正确编写了该语句,是否正确)将始终被评估为false。

如果c不是空格字符,则函数将以未定义的返回值退出。

而且您while是无用的,因为该函数永远不会修改c

您可能想写这样的东西:

bool currency_(const char c)
{
    if (c =='p' || c == 't' || c == 'e' || c == 'd')
    {
        return true;
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者简单地

bool currency_(const char c)
{
    return (c =='p' || c == 't' || c == 'e' || c == 'd');
}
Run Code Online (Sandbox Code Playgroud)