鱼C论坛

 找回密码
 立即注册
查看: 440|回复: 8

[已解决]关于while循环的问题

[复制链接]
发表于 2020-4-11 17:38:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
运行的结果是是4,但是不太理解其中的原理。
while语句后有;不应该是空语句,不执行循环吗?
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int num=0;
  5.         while (num++<=2) ;
  6.         printf("%d ",num);
  7.         return 0;
  8. }
复制代码
最佳答案
2020-4-11 17:49:26
一块小钱 发表于 2020-4-11 17:47
感谢 可是结果为什么是4 不是3吗

程序的执行过程:

num = 0
num <= 2,继续循环
num ++,此时 num 是 1

num <= 2,继续循环
num ++,此时 num 是 2

num <= 2,继续循环
num ++,此时 num 是 3

num 不 <= 2,终止循环
(但是 num 还是会自加,所以结果为 4)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-11 17:39:44 | 显示全部楼层
空语句不代表不执行循环,只是不执行任何语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 17:42:05 | 显示全部楼层
空循环只是啥也不做,不是不循环。

当然你这里num++是做了事的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 17:42:33 | 显示全部楼层
和这段代码一样:
  1. while (num++<=2)
  2.         ;
复制代码

就会一直循环,直到条件不成立
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 17:47:01 | 显示全部楼层
qiuyouzhi 发表于 2020-4-11 17:42
和这段代码一样:

就会一直循环,直到条件不成立

明白了 可是第一次循环num=1,第二次=2,第三次=3,结果不应该是3吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 17:47:46 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-4-11 17:42
空循环只是啥也不做,不是不循环。

当然你这里num++是做了事的。

感谢 可是结果为什么是4 不是3吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 17:48:56 | 显示全部楼层
一块小钱 发表于 2020-4-11 17:47
感谢 可是结果为什么是4 不是3吗

因为在最后一次判断失败的时候,也执行了自加运算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-11 17:49:03 | 显示全部楼层
一块小钱 发表于 2020-4-11 17:47
明白了 可是第一次循环num=1,第二次=2,第三次=3,结果不应该是3吗

即使判断错误了,num也自增了1
可以改成++num
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-11 17:49:26 | 显示全部楼层    本楼为最佳答案   
一块小钱 发表于 2020-4-11 17:47
感谢 可是结果为什么是4 不是3吗

程序的执行过程:

num = 0
num <= 2,继续循环
num ++,此时 num 是 1

num <= 2,继续循环
num ++,此时 num 是 2

num <= 2,继续循环
num ++,此时 num 是 3

num 不 <= 2,终止循环
(但是 num 还是会自加,所以结果为 4)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 09:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表