C语言while和do while循环的用法(新手必看)
日常生活中总会有许多简单而重复的工作,完成这些必要的工作可能需要花费很多时间。编写程序的目的就是使工作变得简单,使用计算机来处理这些重复的工作是最好不过的了。
对于处理重复执行的工作,C 语言提供了 3 种循环结构,分别是 while、do while 和 for 循环。本节主要讲解前两种循环结构的用法。
while 语句的执行流程图如下:

图 1 while语句的执行流程图
根据图 1,可总结出 while 语句的如下执行步骤:
例如,判断条件为关系表达式,代码如下:
例如,判断条件为逻辑表达式,代码如下:
例如,判断条件为算术表达式,然后进行关系运算,代码如下:
例如,判断条件为单个变量,代码如下:
常见的死循环还有一种形式,例如:
do while 语句的一般形式如下:
do while 语句首先执行一次语句块中的内容,然后判断表达式,当表达式的结果为真时,返回重新执行语句块。执行循环,直到表达式的判断结果为假时为止,此时循环结束。
do while语句的执行流程如下图所示:

图 2 do while语句的执行流程图
根据图 2,可总结出 do while 语句的如下执行步骤:
比较图 1 和图 2 可以得出 while 与 do while 语句的区别:do while 的循环体至少无条件执行一次,简单地说,do while 语句要比 while 语句多循环一次。
例如,判断条件为关系表达式,代码如下:
例如,判断条件为逻辑表达式,代码如下:
例如,判断条件为算术表达式,然后进行关系运算,代码如下:
例如,判断条件为单个变量,代码如下:
这样的循环也被称为死循环或者无限循环。再举一个死循环的例子:
对于处理重复执行的工作,C 语言提供了 3 种循环结构,分别是 while、do while 和 for 循环。本节主要讲解前两种循环结构的用法。
C语言while循环语句
while 语句可以执行循环结构,它的一般形式如下:while(表达式) { 语句块; }有以下几点说明:
- while 是循环结构中的关键字之一;
- 表达式可以是任意合法的表达式,由它来控制语句块的执行;
-
语句块可以是一条语句,也可以是任意合法的复合语句(复合语句包含
{ }
)。
while 语句的执行流程图如下:

图 1 while语句的执行流程图
根据图 1,可总结出 while 语句的如下执行步骤:
- 步骤 1:先计算表达式的结果。
- 步骤 2:若表达式的结果为真,执行步骤 3;若表达式的结果为假,执行步骤 5。
- 步骤 3:执行语句块中的内容。
- 步骤 4:再执行步骤 2。
- 步骤 5:结束循环,执行 while 循环之后的语句。
例如,判断条件为关系表达式,代码如下:
int num=1; while(num>100) //判断条件为关系表达式(num与100进行比较) { num+=1; }
例如,判断条件为逻辑表达式,代码如下:
int num1,num2; while(num1&&num2) //判断条件为逻辑表达式(num1和num2进行逻辑与运算) { num+=1; }
例如,判断条件为算术表达式,然后进行关系运算,代码如下:
int num=2; while(num+2>100) //判断条件为算术表达式,再进行比较 { num+=1; }
例如,判断条件为单个变量,代码如下:
int num=1; while(num) //判断条件为单个变量(判断num的值是否为真值) { num+=1; }从上面这段代码可以看出,判断条件 num 永远为真,那么这个循环将会无止境地循环下去,这样的循环被称为死循环或者无限循环。
常见的死循环还有一种形式,例如:
int num=1; while(1) //判断条件为1,永远为真 { num+=1; }从上面这段代码可以看出,判断条件为 1,永远为真,这样的循环也称为死循环(无限循环)。
C语言do while循环语句
do while 语句的特点就是先执行循环体语句的内容,然后判断循环条件是否成立。也就是说,do while 不论条件是否满足,循环过程必须至少执行一次。do while 语句的一般形式如下:
do { 语句块 }while(表达式);有以下几点说明:
- do 和 while 是循环结构中的关键字。
- 表达式可以是任意合法的表达式,由它来控制循环的执行。
-
语句块可以是一条语句,也可以是任意合法的复合语句(复合语句包含
{ }
)。
do while 语句首先执行一次语句块中的内容,然后判断表达式,当表达式的结果为真时,返回重新执行语句块。执行循环,直到表达式的判断结果为假时为止,此时循环结束。
do while语句的执行流程如下图所示:

图 2 do while语句的执行流程图
根据图 2,可总结出 do while 语句的如下执行步骤:
- 步骤 1:先执行 do 后的语句块。
- 步骤 2:计算 while 后一对圆括号内的表达式的值。当表达式的结果为真时,执行步骤 1;当表达式的结果为假时,执行步骤 3。
- 步骤 3:结束循环,执行 do while 循环之后的语句。
比较图 1 和图 2 可以得出 while 与 do while 语句的区别:do while 的循环体至少无条件执行一次,简单地说,do while 语句要比 while 语句多循环一次。
例如,判断条件为关系表达式,代码如下:
int num=1; do { num+=1; }while(num>100); //判断条件为关系表达式(num与100进行比较)
例如,判断条件为逻辑表达式,代码如下:
int num1,num2; do { num+=1; while(num1&&num2); //判断条件为逻辑表达式(num1与num2进行逻辑与运算)
例如,判断条件为算术表达式,然后进行关系运算,代码如下:
int num=2; do { num+=1; } while(num+2>100); //判断条件为算术表达式,再进行比较(计算num+2的值再将其与100进行比较)
例如,判断条件为单个变量,代码如下:
int num=1; do { num+=1; }while(num); //判断条件为单个变量(判断num的值是否为真值)
这样的循环也被称为死循环或者无限循环。再举一个死循环的例子:
int num=1; do { num+=1; } while(1); //判断条件为1,永远为真
注意,在使用 do while 语句时,循环条件要放在 while 关键字后面的括号中,最后必须加上一个分号,这是许多初学者容易忘记的。