C语言while循环的用法(非常详细,附带实例)
while
是 C 语言中的一种循环控制结构,用于在特定条件为真时重复执行一段代码。
while 循环的语法如下:
while (条件表达式) { // 循环体:条件为真时执行的代码 }
-
条件表达式
:返回真(非 0)或假(0)的表达式,决定是否继续循环。 -
大括号
{}
:定义循环体,若只有一行语句,可省略,但建议保留以提高可读性。
while 循环的核心是一个条件表达式,当条件为真(非 0)时,循环体内的代码会反复执行,直到条件变为假(0)。while 循环的运行流程是:
-
检查
条件表达式
。 - 若为真,执行循环体,然后返回步骤 1。
- 若为假,退出循环,继续执行后续代码。
也就是说,while 循环的逻辑是:“只要条件成立,就继续执行。”
在 C语言中,while 循环特别适合那些循环次数不固定、依赖条件判断的场景。接下来,我们将深入探讨 while 循环的用法、使用场景以及注意事项。
【实例】简单计数。
#include <stdio.h> int main(void) { int count = 0; while (count < 5) { printf("计数:%d\n", count); count++; } return 0; }
输出结果:
计数:0 计数:1 计数:2 计数:3 计数:4
count < 5
初始为真,循环体执行 5 次,每次 count
自增,直到 count = 5
,条件为假,循环结束。
while常见使用场景
1) 已知次数的循环
虽然 while
更适合动态条件,但也可以用于固定次数的循环。
#include <stdio.h> int main(void) { int i = 1; while (i <= 10) { printf("%d ", i); i++; } printf("\n"); return 0; }
输出结果:
1 2 3 4 5 6 7 8 9 10
2) 累加计算
用 while
实现累加或求和。
#include <stdio.h> int main(void) { int sum = 0, num = 1; while (num <= 100) { sum += num; num++; } printf("1 到 100 的和是:%d\n", sum); return 0; }
输出结果:
1 到 100 的和是:5050
sum
累加每次的 num
,直到 num > 100
。
3) 输入验证
while
常用于等待用户输入符合条件。
#include <stdio.h> int main(void) { int num; printf("请输入一个正数:"); scanf("%d", &num); while (num <= 0) { printf("输入错误,请输入一个正数:"); scanf("%d", &num); } printf("你输入的正数是:%d\n", num); return 0; }
输出结果(示例输入):
请输入一个正数:-5 输入错误,请输入一个正数:0 输入错误,请输入一个正数:3 你输入的正数是:3
C语言do-while循环
C语言还提供 do-while
循环,与 while
的区别是条件后置,至少执行一次循环体。
do { // 循环体:先执行一次 } while (条件表达式);
【实例】do-while 用法。
#include <stdio.h> int main(void) { int num = 0; do { printf("num = %d\n", num); num++; } while (num < 3); return 0; }
输出结果:
num = 0 num = 1 num = 2
即使初始 num = 0
,循环体先执行一次,然后检查条件。
与for循环的对比
特性 | while | for |
---|---|---|
初始化 | 需手动在循环外定义 | 包含在语法中 |
条件检查 | 每次循环前 | 每次循环前 |
更新语句 | 需手动在循环体内 | 包含在语法中 |
适用场景 | 动态条件 | 固定次数循环 |
while注意事项
1) 避免死循环
若条件永远为真,会导致死循环。
// 错误示例 while (1) { printf("无限循环\n"); } // 死循环
解决方法:确保条件最终会变为假,或使用 break
跳出。
2) break和continue
break
立即退出循环,continue
跳过本次循环剩余部分。
#include <stdio.h> int main(void) { int i = 0; while (i < 10) { i++; if (i == 3) continue; // 跳过 3 if (i == 7) break; // 在 7 退出 printf("%d ", i); } printf("\n"); return 0; }
输出结果:
1 2 4 5 6
3) 条件表达式类型
条件必须返回整数值(非 0 为真,0 为假),避免使用浮点数直接比较。
// 不推荐 float f = 0.1; while (f < 1.0) { ... } // 浮点误差可能导致问题
总结
while 是 C 语言程序常用的一种循环结构,适合处理条件动态变化的重复任务。学习 while 循环语句,除了它本身的语法外,你还需要掌握
do-while
变体以及 break
、continue
的用法,才能灵活控制程序的执行流程。在 C 语言程序中使用 while 循环语句时,要避免出现死循环的情况。读完本文,恭喜你已经彻底掌握 while 循环语句的用法。