C++ while循环的用法(附带实例)
循环结构中,程序会重复地执行同一段代码,直到条件不再满足,或者遇到强行跳出语句。
C++ 提供了 3 种循环结构,包括 while 循环、do while 循环和 for 循环。循环结构可以使程序代码更加简洁,减少冗余,是程序设计人员必须掌握的。
while 循环语句的一般形式如下:
while 循环的执行过程为:先计算“表达式”的值,当值为真(非 0)时,执行“语句块”;执行完“语句块”,再次计算“表达式”的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到“表达式”的值为假(0),就退出循环,执行 while 循环后面的代码。
while 循环的执行流程如下图所示:

图 1 while 循环流程图
循环语句块通常是用大括号括起来的多条简单语句,又称为循环体。循环语句反复执行的就是循环体中的内容。
【实例 1】计算 1~10 的累加和。
问题分析:计算 1~10 的累加和就是计算 1+2+…+10。使用 while 循环求解时,需要有一个变量从 1 变化到 10,将该变量命名为 i。i既作为整个循环的控制变量(循环条件为i<=10),又作为依次累加的数。还需要一个变量 sum,不断和 i 进行加法运算,并记录运算结果。变量 i 每增加 1 时,就和变量 sum 进行一次加法运算,因此变量 sum 记录的就是累加和。
本例程序的执行流程如下图所示:

图 2 实例 1 流程图
具体代码如下:
初学循环语句时,读者经常会因为错写条件表达式,使循环多执行一次或少执行一次,这类错误称为“差一错误”。例如,把 number <= 20 写作 number < 20,就会少执行一次循环。
使用 while 循环的注意事项如下:
1) “表达式”不能为空,如果为空则不合法。
2) “表达式”中,可以用非 0 代表逻辑真值(true),用 0 代表逻辑假值(false)。
例如,下述语句是一个无限循环语句:
下述语句是一个不会进行循环的语句:
3) 循环体中必须有改变“表达式”值的语句,否则将成为死循环。
4) “while(条件表达式)”后面不能添加英文分号(;)。
C++ 提供了 3 种循环结构,包括 while 循环、do while 循环和 for 循环。循环结构可以使程序代码更加简洁,减少冗余,是程序设计人员必须掌握的。
while 循环语句的一般形式如下:
while(表达式){ 语句块; }其中,“表达式”一般是关系表达式或逻辑表达式,表示循环条件,值是一个逻辑真值或假值。
while 循环的执行过程为:先计算“表达式”的值,当值为真(非 0)时,执行“语句块”;执行完“语句块”,再次计算“表达式”的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到“表达式”的值为假(0),就退出循环,执行 while 循环后面的代码。
while 循环的执行流程如下图所示:

图 1 while 循环流程图
循环语句块通常是用大括号括起来的多条简单语句,又称为循环体。循环语句反复执行的就是循环体中的内容。
【实例 1】计算 1~10 的累加和。
问题分析:计算 1~10 的累加和就是计算 1+2+…+10。使用 while 循环求解时,需要有一个变量从 1 变化到 10,将该变量命名为 i。i既作为整个循环的控制变量(循环条件为i<=10),又作为依次累加的数。还需要一个变量 sum,不断和 i 进行加法运算,并记录运算结果。变量 i 每增加 1 时,就和变量 sum 进行一次加法运算,因此变量 sum 记录的就是累加和。
本例程序的执行流程如下图所示:

图 2 实例 1 流程图
具体代码如下:
#include <iostream> using namespace std; int main() { int sum = 0, i = 1; // 定义两个变量,sum 表示累加和,i 为循环控制变量 while (i <= 10) // while 循环,先判断循环条件,再执行循环体 { sum = sum + i; // 计算累加和 i++; // 循环控制变量 i 自增 } cout << "the result : " << sum << endl; }运行程序,输出结果为:
the result : 55
初学循环语句时,读者经常会因为错写条件表达式,使循环多执行一次或少执行一次,这类错误称为“差一错误”。例如,把 number <= 20 写作 number < 20,就会少执行一次循环。
使用 while 循环的注意事项如下:
1) “表达式”不能为空,如果为空则不合法。
2) “表达式”中,可以用非 0 代表逻辑真值(true),用 0 代表逻辑假值(false)。
例如,下述语句是一个无限循环语句:
while(1) { }
下述语句是一个不会进行循环的语句:
while(0) { }
3) 循环体中必须有改变“表达式”值的语句,否则将成为死循环。
4) “while(条件表达式)”后面不能添加英文分号(;)。