我刚刚开始学习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;
}