且构网

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

《C++游戏编程入门(第4版)》——2.8 使用break和continue语句

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

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

2.8 使用break和continue语句

C++游戏编程入门(第4版)
循环的行为是能够改变的,比如使用break语句立即退出循环,或者使用continue语句直接跳转到循环开始。尽管应当少用这些语句,但它们有时确实很有用。

2.8.1 Finicky Counter程序简介

Finicky Counter程序通过while循环从1数到10。但是该程序很挑剔,不喜欢5这个数字,所以跳过了它。该程序的运行示例如图2.8所示。
《C++游戏编程入门(第4版)》——2.8 使用break和continue语句

图2.8 程序用continue语句跳过了数字5,循环以break语句结束

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

// Finicky Counter
// Demonstrates break and continue statements
#include <iostream>
using namespace std;
int main()
{
   int count = 0;
   while (true)
   {
     count += 1;
     //end loop if count is greater than 10
     if (count > 10)
     {
        break;
     }
     //skip the number 5
     if (count == 5)
     {
        continue;
     }
     cout << count << endl;
   }
   return 0;
}```
###2.8.2 创建while(true)循环
程序中使用下面一行代码来初始化循环:

  ` while (true)`
从技术上来讲,这是个无限循环。在刚刚警告过要避免无限循环后就使用了一个无限循环,这显得有些奇怪,但是这个特殊的循环并不会无限循环下去,因为循环体中有退出条件。

提示
 尽管while (true)循环有时能比传统循环更清晰,但也应当尽可能少使用这种循环。
###2.8.3 使用break语句退出循环
下面的代码是循环中的退出条件:

     //end loop if count is greater than 10
     if (count > 10)
     {
        break;
     }`
因为count在每次循环开始时加1,所以它最终会增加到11。当到11时,程序执行break语句(意思是“终止并退出循环”),循环结束。

2.8.4 使用continue语句跳转到循环开始

在显示count前,有下面几行代码:

     //skip the number 5
     if (count == 5)
     {
        continue;
     }```
continue语句的意思是“跳转到循环的开始”。在循环开始,程序验证while表达式。如果值为真,则程序再次进入循环。因此,当count等于5时,程序不会执行cout << count << endl;语句,而是回到循环开始:5被跳过,不会显示。

###2.8.5 使用break和continue的时机