正在为基于文本的游戏制作一个小代码,但我尝试做的思考与教程类型有点不同,以测试我的理解但我试图获得一个函数值来做一个while语句,但似乎是否声明false或true代码只是保持循环无限初学者如果你有时间解释为什么代码有问题并且提前感谢你
主要功能
int main() {
PrintIntroStart();
do {
PlayGame();
AskToPlayAgain();
} while (AskToPlayAgain() == true);
return 0;
}
布尔函数
bool AskToPlayAgain(){
//Asking The Player Whether To Play Again Or Not
std::string PlayerResponse = "";
std::cout << "Do You Want To Play Again? (Yes/No)" << std::endl;
std::cin >> PlayerResponse;
if (PlayerResponse[0] == 'y' || 'Y')
return true;
else
return false;
}
答案 0 :(得分:3)
另外,在这里你要两次再玩一次
do {
PlayGame();
AskToPlayAgain();
} while (AskToPlayAgain() == true);
这应该是
do {
PlayGame();
} while (AskToPlayAgain() == true);
答案 1 :(得分:2)
if (PlayerResponse[0] == 'y' || 'Y')
这个应该是
if (PlayerResponse[0] == 'y' || PlayerResponse[0] == 'Y')
否则您的if
条件始终为真,因为'Y'
本身不为零。
事实上,您不需要此if
声明,只需
return PlayerResponse[0] == 'y' || PlayerResponse[0] == 'Y';
答案 2 :(得分:0)