C++从零开始学(视频教学版)(第2版)
上QQ阅读APP看书,第一时间看更新

5.3 循环语句

本节介绍控制语句中的循环语句。在编写代码的过程中,有些代码需要重复执行,这就要用到循环语句。每种循环语句都有以下4个要素:


●循环变量的初始化,也就是定义循环变量。它属于循环语句的非必要元素,可以使用其他已经定义好的变量来代替。

●循环条件的初始化,循环条件的最终结果是数字。

●改变循环变量/条件的值,在每次循环中都会执行的部分。

●定义循环的实际目的。

5.3.1 for循环

for循环是C++中使用最频繁的循环语句,它需要在最初就指定循环次数。

for循环的语法格式:

其中,for是关键字,需要循环执行的语句是循环体,它可以是复合语句或者单条语句。

for循环执行的过程如下。


(1)条件初始化的表达式首先被执行(并且只被执行一次)。

(2)然后程序检查条件是否成立,如果成立,就执行循环体中的语句,否则直接结束循环。

(3)执行完一遍循环体中的语句以后,程序执行“条件改变”语句。

提示

for语句中的花括号包括循环体,它可以由若干条语句组成,当循环体中的语句只有一条时,外面的大括号可以省略。

下面通过一个实例来说明for循环的使用方法。


【实例5-5】for循环(代码5-5.txt)

新建名为“fortest”的【C++ Source File】源程序,源代码如下所示:

【代码详解】

在这个例子中,首先定义int型变量sum并赋值为0,然后定义int型变量i,接着调用for循环,将从1到100的整数相加,最后赋值给sum,并输出sum的值。

运行结果如图5-7所示。

图5-7 代码运行结果

【实例分析】

从结果来看,程序先执行条件初始化语句i=1,接着判断条件i <=100,显然此时该条件成立,于是程序执行循环体内的语句sum+=i;,然后执行改变条件因子的语句i++;;此时i值变为2,程序再次判断条件i <=100,依然成立,于是开始第二遍循环……

5.3.2 while循环

while在C++中的含义是:当满足while后面的条件时,不断重复执行循环语句,直到不满足while条件时,跳出循环。

while语法格式:

while是关键字,需要循环执行的语句是循环体,它可以是一条语句或者复合语句。当条件为真时,开始执行while循环体中的语句,之后反复执行,每次执行都会判断条件是否为真,如果为真,就继续执行,否则跳出循环。

提示

当while条件是1(或true)时,这是一个常量,不因其他条件而改变,所以它是无限循环形式。

下面通过一个实例来说明如何使用while循环。


【实例5-6】while循环(代码5-6.txt)

新建名为“whiletest”的【C++ Source File】源程序,源代码如下所示:


【代码详解】

在该例中,首先定义int型变量sum并赋值为0,int型变量i;调用while循环,将从1到100的数相加,最后赋值给sum,并输出sum的值。

运行结果如图5-8所示。

图5-8 代码运行结果

【实例分析】

从整个示例来看,sum初始值为0,然后在每一遍的循环里,它都加上i,而i每次都在被加后增加1。最终i递增到101,此时超过100,这个循环将停止。

5.3.3 do-while循环

while循环是在循环开始时就判断条件,而do-while循环中是将循环的条件放在循环结构后面。也就是说,就算条件一开始就不成立,循环也要被执行一次。

do-while循环的语法格式:

其中,do和while都是关键字,需要循环执行的语句是循环体,它可以是一条语句,也可以是复合语句。当语句执行到while时,判断条件是否为真,如果为真,就继续执行循环体,否则跳出循环。

提示

使用do-while的风格与for和while差别较大,在程序中,do-while循环使用得越来越少,大多可以使用for和while代替。

下面讲述一个实例,使用do-while来实现从1到10的累加效果。


【实例5-7】do-while(代码5-7.txt)

新建名为“dowtest”的【C++ Source File】源程序,源代码如下所示:

【代码详解】

在该例中,首先定义int型变量sum并赋值为0;然后定义int型变量i;接着调用do-while循环,将从1到10的数相加;最后赋值给sum,将sum的值输出。

运行结果如图5-9所示。

图5-9 代码运行结果

【实例分析】

从结果来看,使用do首先调用sum=sum+1,接下来调用i++,此时i成为2,调用while条件判断2<=10,则继续调用sum=sum+2,如此重复,直到i成为11,循环结束。