Я работаю над заданием для одного из моих классов колледжа, и у меня возникает «проблема», когда, если я использую функцию в выражении цикла if / while, она вызывает функцию вместо предоставлениялогическое значение. Мне нужно проверить, равно ли значение этой функции желаемому значению. Я уверен, что это предполагаемая функция, но нас не учили, как правильно это проверять, и я смог найти какую-либо ссылку на указанное действие. Любая помощь приветствуется.
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;
}
Ожидается проверить, является ли функция истинной. Фактический результат, он вызывает функцию, в результате чего функция вызывается дважды.