当前位置: 首页 > 知识库问答 >
问题:

使用函数返回值作为语句时的无限循环[重复]

余铭晨
2023-03-14

我正在为一个基于文本的游戏做一个小代码,但我试图做的想法有点不同于教程,以测试我的理解,但我试图得到一个函数值使一个do while语句,但似乎无论语句是假的还是真的,代码只是不断循环无限我是一个初学者,所以pls如果你有时间解释为什么代码是错误的,并提前谢谢你

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;
}

共有1个答案

严亦
2023-03-14

还有,这里你要求两次再玩一次

do {
    PlayGame();
    AskToPlayAgain();
   } while (AskToPlayAgain() == true);

这应该是

do {
    PlayGame();
} while (AskToPlayAgain() == true);
 类似资料:
  • 问题内容: 我刚刚学习(正在学习)函数参数在Python中的工作方式,并且在没有明显原因的情况下开始进行实验: 给出了输出: 哪里来的?还有,这是什么? 问题答案: 它是函数的返回值,您可以将其打印出来。如果没有语句(或者只是没有参数的),则将隐式添加到函数的末尾。 您可能想返回函数中的值,而不是打印它们:

  • 问题内容: 我有一个打开文件的代码,计算中值并将该值写入单独的文件。一些文件可能是空的,因此我编写了以下循环来检查文件是否为空,如果是,请跳过它,增加计数并返回循环。它对找到的第一个空文件执行预期的操作,但对第二个不执行预期的操作。循环在下面 输出如下 第二个问题是,t以某种方式从小数点后一位上升到15位,而最后一位似乎增加了小数位?感谢您提供的所有帮助 编辑 该错误 似乎仅适用于仅使用一行示例的

  • 我有一个二维布尔数组“poorSignal”,需要编写一个返回网格的方法,如果数组上的一个点为真,则显示X,如果为假,则显示O。这是我的代码: 当我编译时,它在方法的最后一行给出了“missing return statement”。我也不确定“return”\n在打印阵列时是否可以添加新行。 这是一个赋值问题,所以我不能直接打印它,也不能只打印布尔值——它必须是一个生成网格的方法。

  • 我可以找到类似的问题,但我找不到我对这个特定案例期望的答案。 当我执行这段代码时,我得到一个编译错误,上面写着“缺少返回语句”。但是,据我所知,很明显,for循环中的代码将毫无疑问地执行,因为第一次,x=0。因此,对于这种特殊情况,没有理由不在for循环中执行代码。那么,为什么我们还需要在for循环之外声明一个额外的return语句呢?。

  • C语言允许函数的返回值是一个 指针(地址),我们将这样的函数称为 指针函数。下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个: 运行结果: C Language↙ c.biancheng.net↙ Longer string: c.biancheng.net 用指针作为函数返回值时需要注意的一点是,函数运行结束后会销毁在它内部定义的所有局部数据,包括局部变量、局部数组和

  • 问题内容: 这个问题已经在这里有了答案 : 从列表中删除项目并对其进行迭代时出现奇怪的结果 (4个答案) 5年前关闭。 对于我的一生,我无法弄清楚为什么我的IF语句没有受到攻击。在很多情况下,n的余数//放在结果列表中的最后一个数字为0。 问题答案: 问题是您要在迭代列表时修改列表,因此所有偶数都将被跳过。因此,条件总是。 该循环跟踪指数的,所以当你在索引中删除的项目在,下一个项目个位置转变为当前