C语言while循环的用法(新手必看)
在 C语言中,while 循环是一种常用的循环结构,它可以重复执行一段代码,直到指定的条件不再满足。
while 循环的语法形式如下:
和 if 分支语句一样,while 也仅对其后一条语句产生效果。如果要循环多条语句,则需要使用花括号将它们组合成一条复合语句。
循环进行的过程如下:
最终,输出 1~100 的和是 5050。
但是,如果我们故意将测试条件结果改为 1 或 0 以外的数值,会怎么样呢?分析下面的实例程序:
当你的程序陷入了无限循环,或者你想打断程序的运行,可以按快捷键
要想让循环运行特定的次数并在正确的时间退出,需要满足以下三个条件:
这三个条件对应的代码如下:
while 与 do-while 循环的对比如下图所示:

图 1 while与do-while循环的对比
do-while 循环的基本语法如下:
do-while 循环的一个常见应用是读取用户输入,例如:
由于 do-while 循环中的循环体语句至少会被执行一次,因此即使一开始输入的数据不符合要求,也可以确保用户至少会输入一次数据。
while 循环的语法形式如下:
while(测试条件) 循环行为每次循环开始时,先判断条件是否为真。如果条件为真,则执行循环体语句,然后再次判断条件是否为真,如此循环下去,直到条件不再为真,循环结束。
和 if 分支语句一样,while 也仅对其后一条语句产生效果。如果要循环多条语句,则需要使用花括号将它们组合成一条复合语句。
while(测试条件) { 循环行为1 循环行为2 循环行为3 ... }让我们使用 while 语句来尝试实现 1~100 的求和过程:
#include <stdio.h> int main() { int i = 1, sum = 0; while(i <= 100) { sum = i + sum; i++; } printf("%d %d\n", i, sum); return 0; }在上面的例子中,首先初始化变量 i 为 1,初始化变量 sum 为 0,然后进入 while 循环,判断条件
i <= 100
是否成立,只要 i 在 1 到 100 的区间内,表达式结果就为真,都能进入循环体内。在循环体内,计算i + sum
,将结果赋值给 sum,并且 i 每次自增 1。循环进行的过程如下:
-
当 i 为 1 时,表达式
1 <= 100
为真,可以进入循环。此时 sum 的值为 1 + 0,i 变为 2。 -
当 i 为 2 时,表达式
2 <= 100
为真,可以进入循环。此时 sum 的值为 2 + (1 + 0),i 变为 3。 -
当 i 为 3 时,表达式
3 <= 100
为真,可以进入循环。此时 sum 的值为 3 + (2 + 1 +0),i 变为 4。 -
直到 i 的值为 101,表达式
101 <= 100
为假,测试条件不成立,停止循环。
最终,输出 1~100 的和是 5050。
C语言while死循环
C语言中用 1 表示真,用 0 表示假,循环中的测试条件要么是真,要么是假。但是,如果我们故意将测试条件结果改为 1 或 0 以外的数值,会怎么样呢?分析下面的实例程序:
#include <stdio.h> int main() { while(2) { printf("Hello"); } return 0; }由于在 C 语言中非零即为真,因此 while 将 2 看作真,导致了无限次数的循环,程序将不停地输出 Hello。
当你的程序陷入了无限循环,或者你想打断程序的运行,可以按快捷键
Ctrl + C
让程序停止运行。避免死循环的三个条件
在上面的求和实例代码中,我们先将变量 i 设置为 1。接着,i 与一个有限值进行比较作为循环条件。最后,每一次执行完循环语句后,变量 i 的值将改变。这个变量 i 通常被称为计数器。要想让循环运行特定的次数并在正确的时间退出,需要满足以下三个条件:
- 开始时,为计数器设置初始值;
- 将计数器与一个有限值进行比较作为循环条件;
- 在循环语句中更新计数器。
这三个条件对应的代码如下:
int i = 1; while (i <= 100) { i++; }注意,计数器的初始值如果设置不正确,则将会导致无法开始循环或者发生错误次数的循环;如果循环条件设置不正确,则循环将无法开始或结束。如果计数器不更新,则将导致循环无法结束。
C语言do-while循环
do-while 循环和 while 循环非常相似,不同之处在于,它们的执行顺序不同:- 在 while 循环中,程序会先判断循环条件是否满足,只有在循环条件满足时才会执行循环体;
- 在 do-while 循环中,程序会先执行一次循环体,然后判断循环条件是否满足。
while 与 do-while 循环的对比如下图所示:

图 1 while与do-while循环的对比
do-while 循环的基本语法如下:
do { 循环行为1 循环行为2 循环行为3 ... }while(循环条件); // 注意do-while有分号结尾
在执行 do-while 循环时,程序会先执行一次循环体语句,然后判断循环条件是否满足。如果循环条件满足,程序会继续执行循环体语句,直到循环条件不满足。与 while 循环不同,do-while 循环中的循环体语句至少会被执行一次,即使循环条件一开始就不满足。注意,do-while 需要有分号结尾。
do-while 循环的一个常见应用是读取用户输入,例如:
#include <stdio.h> int main() { int num; do { printf("请输入一个大于0的整数:"); scanf("%d", &num); } while (num <= 0); return 0; }在这个例子中,程序要求用户输入一个大于 0 的整数,如果用户输入的整数不符合要求,程序会继续提示用户重新输入,直到用户输入一个满足条件的整数。
由于 do-while 循环中的循环体语句至少会被执行一次,因此即使一开始输入的数据不符合要求,也可以确保用户至少会输入一次数据。