且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《C++游戏编程入门(第4版)》——2.7 使用do循环

更新时间:2022-09-17 08:45:28

本节书摘来自异步社区出版社《C++游戏编程入门(第4版)》一书中的第2章,第2.1节,作者:【美】Michael Dawson(道森),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.7 使用do循环

C++游戏编程入门(第4版)
像while循环一样,do循环也可以基于表达式重复执行部分代码。区别在于,do循环在每次循环迭代之后验证表达式。这意味着循环体总是至少要执行一次。下面给出do循环的一般形式:

do
     statement;
while (expression)```
程序执行statement,且只要验证为true,循环就重复进行。一旦expression验证为false,则循环终止。

###2.7.1 Play Again 2.0程序简介
Play Again 2.0程序在用户看来和原始的Play Again一样。Play Again 2.0同样通过显示**Played an exciting game**模拟用户玩了一个令人兴奋的游戏,并询问用户是否再玩一次。只要用户输入y,就可以继续玩下去。然而,这次程序使用do循环来完成代码的重复执行。程序如图2.7所示。

从Cengage Learning网站(www.cengageptr.com/downloads)上可以下载到该程序的代码。程序位于Chapter 2文件夹中,文件名为play_again2.cpp。

// Play Again 2.0
// Demonstrates do loops

include

using namespace std;
int main()
{
   char again;
   do
   {
     cout << "nPlayed an exciting game";
     cout << "nDo you want to play again? (y/n): ";
     cin >> again;
   } while (again == ’y’);
   cout << "nOkay, bye.";
   return 0;
}`

《C++游戏编程入门(第4版)》——2.7 使用do循环

2.7.2 使用do循环

程序在do循环开始前声明了char型变量again。然而,并不需要对它进行初始化,因为直到第一次循环结束才会对其进行验证。循环体为again从用户获取新的值。然后在循环表达式中验证again。如果again等于y,则重复循环;否则,循环终止。

陷阱
 如果在玩游戏的过程中陷入了相同的没有尽头的循环,那么有可能是遇上了无限循环,即没有终点的循环。下面给出一个无限循环的简单例子:

int test = 10;
while (test == 10)
{
   cout << test;
}````
在这种情况下,因为test值为10,程序进入循环。但因为test值从未改变,循环不会停止。结果是用户将必须强制终止运行程序。这段代码要说明什么?确保循环的表达式最后能成为false,或者有其他方式来终止循环。2.8节将介绍这种方式。


现实世界

尽管while和do循环都可以使用,大多数程序员都使用while循环。虽然do循环在某些情况下看来更自然,但while循环的优势在于循环表达式出现在循环的开头,这样就不用去循环结尾寻找。