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;
}`
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循环的优势在于循环表达式出现在循环的开头,这样就不用去循环结尾寻找。
时间: 2024-10-22 15:02:55