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

简介:

本节书摘来自异步社区出版社《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;
}`

image

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循环的优势在于循环表达式出现在循环的开头,这样就不用去循环结尾寻找。
相关文章
|
22天前
|
存储 C++ 容器
C++入门指南:string类文档详细解析(非常经典,建议收藏)
C++入门指南:string类文档详细解析(非常经典,建议收藏)
31 0
|
22天前
|
编译器 C++
C++入门指南:10分钟带你快速了解模板究竟是什么(建议收藏!!)
C++入门指南:10分钟带你快速了解模板究竟是什么(建议收藏!!)
27 0
|
22天前
|
存储 编译器 C语言
C++入门: 类和对象笔记总结(上)
C++入门: 类和对象笔记总结(上)
31 0
|
24天前
|
编译器 Linux C语言
C++第二弹---C++入门(中)
C++第二弹---C++入门(中)
|
24天前
|
Java 程序员 Maven
【C/C++ CommonAPI入门篇】深入浅出:CommonAPI C++ D-Bus Tools 完全使用教程指南
【C/C++ CommonAPI入门篇】深入浅出:CommonAPI C++ D-Bus Tools 完全使用教程指南
55 0
|
3天前
|
C++
【C++成长记】C++入门 | 类和对象(下) |Static成员、 友元
【C++成长记】C++入门 | 类和对象(下) |Static成员、 友元
|
3天前
|
存储 编译器 C++
【C++成长记】C++入门 | 类和对象(中) |拷贝构造函数、赋值运算符重载、const成员函数、 取地址及const取地址操作符重载
【C++成长记】C++入门 | 类和对象(中) |拷贝构造函数、赋值运算符重载、const成员函数、 取地址及const取地址操作符重载
|
7天前
|
存储 编译器 C++
C++从遗忘到入门(上)
C++从遗忘到入门(上)
21 0
|
10天前
|
编译器 C语言 C++
【C++】C++入门第一课(c++关键字 | 命名空间 | c++输入输出 | 缺省参数)
【C++】C++入门第一课(c++关键字 | 命名空间 | c++输入输出 | 缺省参数)
|
16天前
|
C++
C++ While 和 For 循环:流程控制全解析
本文介绍了C++中的`switch`语句和循环结构。`switch`语句根据表达式的值执行匹配的代码块,可以使用`break`终止执行并跳出`switch`。`default`关键字用于处理没有匹配`case`的情况。接着,文章讲述了三种类型的循环:`while`循环在条件满足时执行代码,`do/while`至少执行一次代码再检查条件,`for`循环适用于已知循环次数的情况。`for`循环包含初始化、条件和递增三个部分。此外,还提到了嵌套循环和C++11引入的`foreach`循环,用于遍历数组元素。最后,鼓励读者关注微信公众号`Let us Coding`获取更多内容。
19 0