当前位置: 首页 > news >正文

C语言while循环的用法(非常详细,附带实例)

while 是 C 语言中的一种循环控制结构,用于在特定条件为真时重复执行一段代码。

while 循环的语法如下:

while (条件表达式) {
    // 循环体:条件为真时执行的代码
}

  • 条件表达式:返回真(非 0)或假(0)的表达式,决定是否继续循环。
  • 大括号 {}:定义循环体,若只有一行语句,可省略,但建议保留以提高可读性。

while 循环的核心是一个条件表达式,当条件为真(非 0)时,循环体内的代码会反复执行,直到条件变为假(0)。while 循环的运行流程是:

  1. 检查 条件表达式
  2. 若为真,执行循环体,然后返回步骤 1。
  3. 若为假,退出循环,继续执行后续代码。

也就是说,while 循环的逻辑是:“只要条件成立,就继续执行。” 

在 C语言中,while 循环特别适合那些循环次数不固定、依赖条件判断的场景。接下来,我们将深入探讨 while 循环的用法、使用场景以及注意事项。

【实例】简单计数。

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#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 更适合动态条件,但也可以用于固定次数的循环。

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#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 实现累加或求和。

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#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 常用于等待用户输入符合条件。

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#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 用法
/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#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,循环体先执行一次,然后检查条件。

while注意事项

1) 避免死循环

若条件永远为真,会导致死循环。

// 错误示例
while (1) { printf("无限循环\n"); } // 死循环

解决方法:确保条件最终会变为假,或使用 break 跳出。

2) break和continue

break 立即退出循环,continue 跳过本次循环剩余部分。

/**
*  系统学习C语言 https://xiecoding.cn/c/
**/
#include <stdio.h>int main(void) {int i = 0;while (i < 10) {i++;if (i == 3) continue; // 跳过 3if (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 变体以及 breakcontinue 的用法,才能灵活控制程序的执行流程。

在 C 语言程序中使用 while 循环语句时,要避免出现死循环的情况。读完本文,恭喜你已经彻底掌握 while 循环语句的用法。

相关文章:

  • 绘制时间对应的数据曲线
  • C/C++ 程序执行的主要过程
  • [万字]qqbot开发记录,部署真寻bot+自编插件
  • JavaScript进阶(九)
  • mysql8常用sql语句
  • VLLM推理大模型显存不够后,导致程序引擎崩溃的调优方案尝试
  • Mac M系列 安装 jadx-gui
  • java架构设计
  • git cherry-pick和git stash命令详解
  • 反转链表II
  • leetcode0295. 数据流的中位数-hard
  • 关于 javax.validation.constraints的详细说明
  • HuggingFace的SafeSensor格式模型能转成Ollama格式的吗?
  • 26、测试咒语:魔法校验—— Jest+Testing Lib
  • SimpleAdmin云服务器发布
  • 浅聊一下数据库的索引优化
  • 19.Excel数据透视表:第2部分数据透视计算
  • 生产级编排AI工作流套件:Flyte全面使用指南 — Core concepts
  • 需求管理缺乏持续改进机制,如何建立
  • 计算机视觉----时域频域在图像中的意义、傅里叶变换在图像中的应用、卷积核的频域解释
  • 2025财政观察|长三角“三公”经费普降,钱要用在刀刃上
  • 袁思达已任中国科学院办公厅主任
  • “典孝急乐批麻蚌赢”:互联网“八字真言”与当代赛博赢学
  • 中华人民共和国和巴西联邦共和国关于强化携手构建更公正世界和更可持续星球的中巴命运共同体,共同维护多边主义的联合声明
  • 广州地铁十一号线赤沙车辆段工程高坠事故调查报告公布:1人重伤且漏报
  • 最高降九成!特朗普签署降药价行政令落地存疑,多家跨国药企股价收涨