do while 循环没有循环体怎么办
int i =-1
do{}
while (i++);
Printf ("i =%d",i);
c语言do while 循环
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- a5156520 2023-01-28 14:45关注
下面是我的理解,供参考:
do while 循环没有循环体应该是没有问题的,关键在于while循环的条件i++这个表达式的理解,do-while循环的结束条件是当i=0时,如果i不等于0,则一直执行空循环,具体分析如下:
i为int类型,其值如果是-1,do-while循环,循环体do部分先执行一次空循环,while判断i的值,i=-1 , 可以继续执行空循环,判断完后i的值加1变为0;
第二次,循环体do部分执行一次,while部分判断i的值为0,条件不满足,判断完i的值加1为1,最后退出循环打印i的值为1;
当i的值为1时,同样循环体do部分先执行一次空循环,while判断i的值,i=1 , 可以继续执行空循环,判断完后i的值加1变为2;
第二次,循环体do部分执行一次,while部分判断i的值为2,条件满足,判断完i的值加1为3;
如此不断循环,直到i的值变为32位int类型最大值2147483647,执行i++后,发生溢出变为-2147483648, 但while条件仍然满足,继续执行空循环,然后while部分判断i的值,然后i的值继续+1;
继续循环,直到i变为0, while部分判断i的值为0,不再继续循环,接着i的值+1变为1,最后打印i的值就变为1了。
参考资料:
计算机科学概论(第12版)- 第1章 数据存储 - 1.6 整数存储 - 1.6.1 二进制补码记数法 (第33页)https://blog.csdn.net/qq_43851311/article/details/127967231?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-127967231-blog-89969504.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-127967231-blog-89969504.pc_relevant_recovery_v2https://baijiahao.baidu.com/s?id=1709264231108040368&wfr=spider&for=pc#include <stdio.h> int main(void){ int i =-1; do{} while (i++); //https://blog.csdn.net/qq_43851311/article/details/127967231?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-127967231-blog-89969504.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-127967231-blog-89969504.pc_relevant_recovery_v2 // https://baijiahao.baidu.com/s?id=1709264231108040368&wfr=spider&for=pc printf ("i =%d",i); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私