while(a<10) 和 while(r=m%n)
while(a<10) {a--;}
如果a的初始值设为9 那么循环就会一直进行下去 死循环
而while(r=m%n)在r=0时 循环会停止!
为什么会这样?有人说while括号里是bool运算。。若为0 就判断错!跳出循环!
那为什么while(a<10) 不会在a减为0的时候跳出 而是继续减下去成为死循环
为什么??
求高手为什么这两个while循环结果不一样,判断跳出循环的条件不一样?!
答案:3 悬赏:0
解决时间 2021-02-26 20:35
- 提问者网友:情系雨樱花
- 2021-02-26 09:24
最佳答案
- 二级知识专家网友:承载所有颓废
- 2021-02-26 10:55
a初始为9,那么a--,a一直变小,永远小于10,a<10永远成立,当然死循环。
而r=m%n,while用来判断是否循环的时候,用的是r的值,而上一个while(a<10)用的是a<10这个不等式的结果。
而r=m%n,while用来判断是否循环的时候,用的是r的值,而上一个while(a<10)用的是a<10这个不等式的结果。
全部回答
- 1楼网友:滚出爷的世界
- 2021-02-26 12:52
while ()括号里面的整个是一个表达式,系统判断的是整个表达式,而不是一个变量。在C语言中,下面都是表达式:
a
a=b
a>b
a==b
需要注意的是,a=b表达式的值是b,而a==b表达式的值是一个bool量
至于你问题中的 (a<10) 和 (r=m%n),是不同的表达式。只有在特定场景下,才可能等价。
- 2楼网友:丢不掉的轻狂
- 2021-02-26 11:24
你指的地方显然不对,它在第一个while(1)外面,而while(1)是死循环,没有break或return语句是无法退出的。
如果你是想退出while(1)循环,而不退出主函数,要在代码3处加退出条件,如if(条件)break;(只能用break)
如果你不仅想退出while(1)循环,还退出主函数,那么在代码1、2、3处加退出条件皆可,如if(条件)return;(只能用return)
不知我说清楚了吗?有问题可以讨论。
main()
{
while (1)
{
代码1
while (*p)
{
代码2
}
代码3
}
// 应该就是在这边加入 return 什么把? 错误,在死循环外加任何语句都无用。
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯