我刚刚开始学习C ++,我对两个代码之间的区别有一个基本问题。这是在教学视频中呈现的方式:

int main()
{
   bool bPlayAgain = false:
   do {
       PrintIntro();
       PlayGame();
       bPlayAgain = AsktoPlayAgain();
   }
   while(bPlayAgain);
   return 0;
}


我的问题是,我使用以下方法获得了相同的结果:

int main()
{
    PrintIntro();
    do {
       PlayGame();
    }
    while (AskToPlayAgain() == 1);
    return 0;
}


当玩家想再次玩游戏时输入“是”,或者如果输入了其他内容则停止游戏,两者都实现了重启游戏。使用第二种药物有任何有害的副作用吗?

最佳答案

第二个版本不会在每个循环上都显示Intro。除此之外,调用AsktoPlayAgain()作为while参数没有副作用。

我想补充一点,版本1的附加好处是您可以在询问后但在重播之前进行操作。例如:

int main()
{
   bool bPlayAgain = false:
   do {
       PrintIntro();
       PlayGame();
       bPlayAgain = AsktoPlayAgain();
       if(bPlayAgain){
         ShowReload();
       }
   }
   while(bPlayAgain);
   return 0;
}

10-06 16:01