我刚刚开始学习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;
}
当玩家输入“是”时,双方都会重新启动游戏,如果他想再玩一次,或者如果输入了其他内容,就会停止游戏。在使用第二种药物时是否有不想要的副作用?
发布于 2017-03-02 19:23:59
第二个版本不会在每个循环上打印Intro。除此之外,调用AsktoPlayAgain()
作为while参数没有副作用。
我想补充的是,版本1有一个额外的好处,您可以在询问后,但在重放之前做一些事情。例如:
int main()
{
bool bPlayAgain = false:
do {
PrintIntro();
PlayGame();
bPlayAgain = AsktoPlayAgain();
if(bPlayAgain){
ShowReload();
}
}
while(bPlayAgain);
return 0;
}
发布于 2017-03-02 19:20:11
我看到的唯一副作用是,在第二个代码段中,PrintIntro()函数只会被调用一次。它不会被称为每次用户决定再次播放。
发布于 2017-03-02 19:21:45
这两种方法在功能上有两个不同之处:
https://stackoverflow.com/questions/42564067
复制相似问题