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

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 循环语句的用法。

http://www.xdnf.cn/news/5905.html

相关文章:

  • AbstractQueuedSynchronizer之AQS
  • 使用WebStorm打断点调试Vue项目
  • 相对论速度叠加公式与双曲正切
  • 如何创建企业微信应用,如何给企业微信发送消息
  • 【Docker】Docker环境下快速部署Ollama与Open-WebUI:详细指南
  • Qiankun在vue3+vite+ts使用
  • 最优化方法Python计算:有约束优化应用——线性可分问题支持向量机
  • 车载网关作为车辆网络系统的核心枢纽
  • 算法竞赛相关 Java 二分模版
  • 课题推荐——低成本地磁导航入门,附公式推导和MATLAB例程运行演示
  • XILINX-配置(引脚复用)
  • 【Nova UI】十六、打造组件库之滚动条组件(中):探秘滑块的计算逻辑
  • JavaScript进阶(九)
  • 定时器(两种)
  • 芋道(yudao-cloud)项目,后端接口报401-账号未登录解决方案
  • deepseek梳理java高级开发工程师微服务面试题
  • AD PCB布线的常用命令
  • EasyOps®5月热力焕新:三大核心模块重构效能边界
  • LeetCode LCR 016. 无重复字符的最长子串 (Java)
  • 工业巡检机器人 —— 机器人市场的新兴增长引擎
  • NY182NY183美光固态颗粒NY186NY188
  • 宽频带地震仪,便携、高效,守护安全防线
  • STM32 ADC 模数转换器详解:原理、配置与应用
  • 物理:由基本粒子组成的个体能否提炼和重组?
  • tiny core linux系统详解
  • 我喜欢的vscode几个插件和主题
  • 从入门到精通:Drools全攻略
  • webservice获取全国省份区县编码(拼音全拼+拼音简写)
  • 深度学习 自然语言处理(RNN) day_02
  • 2. 盒模型/布局模块 - 响应式产品展示页_案例:电商产品网格布局