gpt4 book ai didi

c++ - if 语句表达式调用函数,需要测试是否为真

转载 作者:行者123 更新时间:2023-11-28 04:08:24 27 4
gpt4 key购买 nike

我正在为我的一门大学类(class)做作业,我遇到了一个“问题”,如果我在 if 语句/while 循环的表达式中使用一个函数,它会调用该函数而不是提供一个 bool 值。我需要检查这个函数的值是否等于所需的值。我确信这是一个预期的功能,但我们没有被教导如何正确地检查这个,我已经能够找到对上述操作的任何引用。感谢您的帮助。

string askYesNo(string question)
{
string playerChoice;
do
{
cout << question << " (YES/NO)" << endl;
cin >> playerChoice;
for (int i = 0; i < playerChoice.size(); i++)
{
playerChoice[i] = toupper(playerChoice[i]);
}
} while (playerChoice != "YES" && playerChoice != "NO");
return playerChoice;
}

void adventure()
{
if (askYesNo("You see a pile of gold in front of you. Do you want it?") == "YES")
{
cout << "As you approach, it moves forward and attacks you!\n";
do
{
askYesNo("\nDo you want to continue to battle?");
} while (askYesNo("\nDo you want to continue to battle?") == "YES");// WHY DOES THIS CALL THE FUNCTION?
}
else
{
cout << "Okay, cool.";
}

return;
}

期望测试函数是否为真。实际结果,它调用了函数,导致函数被调用了两次。

最佳答案

即使函数调用在 if 语句中,函数仍会被调用。我不完全确定 adventure() 中的 do-while 循环的目的是什么,但这是我的建议:

    std::string answer;
do
{
answer = askYesNo("\nDo you want to continue to battle?");
} while (answer == "YES");

这样,函数在每次循环迭代中只会被调用一次。希望这会有所帮助。

关于c++ - if 语句表达式调用函数,需要测试是否为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58296803/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com