《C++入门经典(第5版•修订版)》——6.4 for循环

简介:

本节书摘来自异步社区出版社《C++入门经典(第5版•修订版)》一书中的第6章,第6.4节,作者:【美】Jesse Liberty , Rogers Cadenhead,更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.4 for循环

C++入门经典(第5版•修订版)
编写循环时,经常需要设置计数器变量、检查计数器变量是否满足条件并在每次循环迭代中修改该变量,如下面的while循环所示:
image

上述代码在一行中显示X 13次。for循环是一种复杂的循环,将这三个步骤合并到了一条语句中。该语句使用关键字for,后面是一对括号。在括号内,是三条用分号分隔的语句,它们分别初始化计数器、检查条件和修改计数器。

下面的代码是前述while循环的重写版本,其输出相同:

image

for循环的第一部分是初始化。可在这里放置任何C++语句,但通常创建并初始化计数器变量。

第二部分是检查,可以是任何合法的C++表达式,其作用与while或do-while循环中的条件相同。

第三部分是修改计数器的操作,这通常是一条将计数器递增或递减的语句,但可以是任何合法的C++语句。

在程序清单6.5中,程序MultTable使用for循环显示前10个可被用户指定的数字整除的数。

程序清单6.5 MultTable.cpp的完整源代码

image

第11行的for语句初始化int变量counter、检查该变量是否小于11并递增变量counter,这些都是在一行中完成的。第13行为该for语句的循环体。

警告:
一种常见的错误是,使用逗号而不是分号来分隔for语句的各个部分,这将导致编译器错误。另一种常见错误是,在for语句的右大括号后面添加分号,这将导致只循环但什么都不错。有时候这样做是合理的,因此编译器不会报错。

6.4.1 高级for循环

for循环功能强大而灵活。经常需要初始化多个变量、检查复合逻辑表达式并执行多条语句。

如果初始化和操作部分包含多条语句,就必须使用逗号分隔它们,如下例所示:

image

这个循环的初始化部分设置了两个int变量:x和y,注意到两个声明之间为逗号。

该循环的测试部分检查条件x < 10。

该循环的操作部分递增两个int变量,并使用逗号分隔这两条语句。

这个循环的循环体显示两个变量的乘积。

for循环的每部分都可为空。分隔各个部分的分号必不可少,但有些部分可不包含任何代码,如下所示:

image

6.4.2 嵌套循环

在循环体内,可包含另一个循环。外部循环每次迭代时,都将执行整个内部循环。

在程序清单6.6中,程序BoxMaker在一个for循环中嵌套了另一个for循环,这旨在显示一个由用户选择的字符组成的矩形,矩形的宽度和高度也由用户指定。

程序清单6.6 BoxMaker.cpp的完整源代码
image

运行时,该程序首先让用户指定矩形的行数和列数,然后询问用户要使用什么字符绘制矩形。

在下面的输出中,绘制了一个由星号组成的10×15矩形:

image

在第16行,第一个for循环将计数器变量i初始化为0,接下来是循环体。

第18行为外部for循环的第1行,它建立了内部for循环。该loop将计数器变量j初始化为0,然后是内部for循环的循环体。第20行打印指定的字符,然后回到内部for循环的开头。

内部for循环只有一条语句,它显示指定的字符。检查的条件为(j < columns),如果为true,就将j递增并再次显示指定的字符。这个过程将不断重复下去,直到j等于columns。

内部for循环的条件不满足后(在前面的输出中,此时打印了15个星号),将跳到第22行继续执行:换行。然后返回到外部for循环的开头,对条件(i < rows)进行检查。如果为true,就将i递增并执行循环体。

在外部for循环的第二次迭代中,将重新开始内部for循环,即将j重新初始化为0,并再次运行整个内部for循环。

使用嵌套循环时,在外部循环的每次迭代中,都将执行整个内部循环一次,因此在每行中打印columns个指定的字符。

相关文章
|
1月前
|
设计模式 测试技术 编译器
C++项目中打破循环依赖的锁链:实用方法大全(一)
C++项目中打破循环依赖的锁链:实用方法大全
79 0
|
22天前
|
C++
C++ While 和 For 循环:流程控制全解析
本文介绍了C++中的`switch`语句和循环结构。`switch`语句根据表达式的值执行匹配的代码块,可以使用`break`终止执行并跳出`switch`。`default`关键字用于处理没有匹配`case`的情况。接着,文章讲述了三种类型的循环:`while`循环在条件满足时执行代码,`do/while`至少执行一次代码再检查条件,`for`循环适用于已知循环次数的情况。`for`循环包含初始化、条件和递增三个部分。此外,还提到了嵌套循环和C++11引入的`foreach`循环,用于遍历数组元素。最后,鼓励读者关注微信公众号`Let us Coding`获取更多内容。
21 0
|
1月前
|
设计模式 敏捷开发 持续交付
C++项目中打破循环依赖的锁链:实用方法大全(三)
C++项目中打破循环依赖的锁链:实用方法大全
52 0
|
1月前
|
测试技术 持续交付 API
C++项目中打破循环依赖的锁链:实用方法大全(二)
C++项目中打破循环依赖的锁链:实用方法大全
58 0
|
1月前
|
并行计算 编译器 程序员
提升C/C++编程效率:深入C/C++ for循环的优化与应用
提升C/C++编程效率:深入C/C++ for循环的优化与应用
69 0
|
1月前
|
C++
C++系列八:选择、循环与转向
C++系列八:选择、循环与转向
|
1月前
|
C++ 容器
C++语言中for语句循环和作用类型
C++语言中for语句循环和作用类型
25 0
|
1月前
|
存储 C++ 索引
c++for结构循环超详细讲解
c++for结构循环超详细讲解
21 1
|
1月前
|
程序员 C++
c++循环
c++循环
14 0
|
3天前
|
存储 编译器 C语言
c++的学习之路:5、类和对象(1)
c++的学习之路:5、类和对象(1)
19 0