while和do while 循环有什么区别

本文详细介绍了do-while和while两种循环语句的区别。do-while为后测试循环,确保循环体至少执行一次;而while为前测试循环,可能完全不执行循环体。通过本文,读者可以更好地理解这两种循环语句的特点。

do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。其实就是,代码在刚开始执行的时候,都是要先走一遍do循环体内的代码,然后在与while里面的条件进行判断,成立循环就一直继续下去,不成立就跳出循环。循环体内代码至少被执行一次。

while语句是属于前测试循环语句,也就是说,在循环体内的代码被执行之前,就会对出口条件求值。其实就是先与while里面的条件进行判断,成立就走循环体内的代码,不成立就不走循环体内代码。循环体内的代码有可能永远不会执行。

### 普通文本型 `do-while` 循环 `while` 循环的主要区别在于**条件判断的执行时机不同**。 --- #### 1. 执行顺序 - **`while` 循环**:先判断条件,再执行循环体。 如果条件为假(false),则**一次都不执行**循环体。 ```c while (condition) { // 循环体 } ``` - **`do-while` 循环**:先执行循环体,再判断条件。 因此循环体**至少会执行一次**。 ```c do { // 循环体 } while (condition); ``` > 注意:`do-while` 的 `while` 后必须有分号 `;` --- #### 2. 示例对比 ```c int i = 0; // while 示例 while (i > 0) { printf("while: %d\n", i--); } ``` → 输出:无(因为条件不成立,不进入循环) ```c // do-while 示例 do { printf("do-while: %d\n", i--); } while (i > 0); ``` → 输出:`do-while: 0` 尽管条件为假,但循环体已执行一次。 --- #### 3. 使用场景 - **`while`**:适用于**可能一次都不执行**的情况,如读取有效数据前不确定是否符合条件。 - **`do-while`**:适用于**必须至少执行一次**的场景,比如菜单循环、输入验证等。 ```c int input; do { printf("请输入正数:"); scanf("%d", &input); } while (input <= 0); // 直到输入合法为止 ``` 此例中用户至少要输入一次。 --- ### 总结 | 区别点 | `while` | `do-while` | |----------------|--------------------|-------------------------| | 条件判断时机 | 先判断,后执行 | 先执行,后判断 | | 循环体最少执行次数 | 0 次 | 1 次 | | 适用场景 | 可能不需要执行循环 | 至少需要执行一次 | 选择依据:根据逻辑是否需要“至少执行一次”来决定使用哪种循环结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值