![C++从零开始学(视频教学版)(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/128/29977128/b_29977128.jpg)
5.3 循环语句
本节介绍控制语句中的循环语句。在编写代码的过程中,有些代码需要重复执行,这就要用到循环语句。每种循环语句都有以下4个要素:
●循环变量的初始化,也就是定义循环变量。它属于循环语句的非必要元素,可以使用其他已经定义好的变量来代替。
●循环条件的初始化,循环条件的最终结果是数字。
●改变循环变量/条件的值,在每次循环中都会执行的部分。
●定义循环的实际目的。
5.3.1 for循环
for循环是C++中使用最频繁的循环语句,它需要在最初就指定循环次数。
for循环的语法格式:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P96_12651.jpg?sign=1739143430-qgJ1x9KjSxHaVdSe79Zls5bYMINjlLzn-0-87cc8481f6831bdb739838cde39a2d81)
其中,for是关键字,需要循环执行的语句是循环体,它可以是复合语句或者单条语句。
for循环执行的过程如下。
(1)条件初始化的表达式首先被执行(并且只被执行一次)。
(2)然后程序检查条件是否成立,如果成立,就执行循环体中的语句,否则直接结束循环。
(3)执行完一遍循环体中的语句以后,程序执行“条件改变”语句。
提示
for语句中的花括号包括循环体,它可以由若干条语句组成,当循环体中的语句只有一条时,外面的大括号可以省略。
下面通过一个实例来说明for循环的使用方法。
【实例5-5】for循环(代码5-5.txt)
新建名为“fortest”的【C++ Source File】源程序,源代码如下所示:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P96_12657.jpg?sign=1739143430-vKcDw6u7h3ziKghZ8nwqAGjgEBnt02WD-0-2be34367de1d98db17f27f6beba87e01)
【代码详解】
在这个例子中,首先定义int型变量sum并赋值为0,然后定义int型变量i,接着调用for循环,将从1到100的整数相加,最后赋值给sum,并输出sum的值。
运行结果如图5-7所示。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P97_12668.jpg?sign=1739143430-PbkeJor6c6ZA9K7ljbamjCrS4R91oNim-0-bb12ff532b758ac3902e5db5f1a239ef)
图5-7 代码运行结果
【实例分析】
从结果来看,程序先执行条件初始化语句i=1,接着判断条件i <=100,显然此时该条件成立,于是程序执行循环体内的语句sum+=i;,然后执行改变条件因子的语句i++;;此时i值变为2,程序再次判断条件i <=100,依然成立,于是开始第二遍循环……
5.3.2 while循环
while在C++中的含义是:当满足while后面的条件时,不断重复执行循环语句,直到不满足while条件时,跳出循环。
while语法格式:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P97_12798.jpg?sign=1739143430-YJS4NiqcIAKbFxlELpnH9rvH6kMxcwW0-0-fe3df7aa58d9ca039881d0ff62568206)
while是关键字,需要循环执行的语句是循环体,它可以是一条语句或者复合语句。当条件为真时,开始执行while循环体中的语句,之后反复执行,每次执行都会判断条件是否为真,如果为真,就继续执行,否则跳出循环。
提示
当while条件是1(或true)时,这是一个常量,不因其他条件而改变,所以它是无限循环形式。
下面通过一个实例来说明如何使用while循环。
【实例5-6】while循环(代码5-6.txt)
新建名为“whiletest”的【C++ Source File】源程序,源代码如下所示:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P97_12799.jpg?sign=1739143430-HSlrhogJ1LUTebrQrP1d0LBf2MYGIZdX-0-12e2d8c8fccf9ec2577920dd83f878f5)
【代码详解】
在该例中,首先定义int型变量sum并赋值为0,int型变量i;调用while循环,将从1到100的数相加,最后赋值给sum,并输出sum的值。
运行结果如图5-8所示。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P98_12838.jpg?sign=1739143430-9vniA13akAb7WpD0R1jVuVLKI0mM0J0V-0-3c10ea77bf76fae99450cd69527982ce)
图5-8 代码运行结果
【实例分析】
从整个示例来看,sum初始值为0,然后在每一遍的循环里,它都加上i,而i每次都在被加后增加1。最终i递增到101,此时超过100,这个循环将停止。
5.3.3 do-while循环
while循环是在循环开始时就判断条件,而do-while循环中是将循环的条件放在循环结构后面。也就是说,就算条件一开始就不成立,循环也要被执行一次。
do-while循环的语法格式:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P98_12903.jpg?sign=1739143430-eAlhV8GEW7CrwQ3foqsOVKzUVS55Pdo8-0-3ef12f83ae873e5861dea7267892fac9)
其中,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】源程序,源代码如下所示:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P99_13051.jpg?sign=1739143430-f8lLCT3nlSpj9SyAqUegVcm8ZSIvkxW8-0-3e61524a828ccc4791d1986e7777f761)
【代码详解】
在该例中,首先定义int型变量sum并赋值为0;然后定义int型变量i;接着调用do-while循环,将从1到10的数相加;最后赋值给sum,将sum的值输出。
运行结果如图5-9所示。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P99_13021.jpg?sign=1739143430-qJ5zZBVFbwZgYm6Rrg4kaYaLp5PWhG8S-0-23d18781fd5fc44fd3859c04903ba0ea)
图5-9 代码运行结果
【实例分析】
从结果来看,使用do首先调用sum=sum+1,接下来调用i++,此时i成为2,调用while条件判断2<=10,则继续调用sum=sum+2,如此重复,直到i成为11,循环结束。