c循环问题,求大神教教

while(n=1/3)会陷入无限循环吗?
for(;2;)呢?
什么原理,求大神教

c

12个回答

说到这里,你应该已经发现两个循环语句都是同一个问题,那就是是否会无限执行下去。没有循环体,不执行,是我的判断,建议你亲自执行一下代码。
我在编写其他代码时遇到过,循环判断后,默认把紧接循环判断后的一行语句作为循环体无限执行的情况,你可以测试一下
一种情况是程序只有循环语句前面,另一种情况是程序测试代码在循环后面

sinat_28690417
架构探险之道 回复kevinoop: 编程都是靠自己敲代码,实践得出来的知识你才能记住哦!多动手,少问人…
3 年多之前 回复
kevinoop
kevinoop 那对于float n=1/3;while(n)......这个代码会无限循环吗?
接近 4 年之前 回复
kevinoop
kevinoop 那对于float n=1/3;while(n)......这个代码会无限循环吗?
接近 4 年之前 回复

while里面是判断的,所以应该用==而不是赋值语句;你n是什么类型的,如果没有赋初始值的话,它对应类型就会有一个默认值,这个默认值会与1/3比较的。
但是不会陷入无限循环的。
而for(;2;)第一次执行的时候,它会执行第一个分号前面的条件,由于没有则执行方法体中的程序;执行完后它会执行第二个分号后面的条件,由于没有条件,然后去
两个分号中间的进行判断,由于你这里也相当于没有条件,所以可以说你for的方法体里面是永远无条件的执行下去的,也就是无限循环;

用插入代码片贴代码,不然有些是显示不出来的

你可以自己写一下运行试试看看。

n=1/3结果是n=0(0.3333)的小数点被截断掉了,而0->false所以不循环

for(0;2;0)中 判断表达式为2 非0 所以会一直循环。

主要是看条件是否为true,,如果为true的话就一直循环

的确,你的while 括号内只要不是false,就会执行下方的循环体中的内容。再者,while 中的判断相等应该使用==。

但你的while 只有循环判断语句,没有需要执行的循环体,如果你的while 语句后有{}循环体,就会无限循环下去,没有循环体,只有循环判断语句,我觉得是不会无线执行的。
然后就是你的for 判断,后面的括号里分成三个部分,第一个为给定初值;第二个为循环判断条件,里面的同理只要不是false

其他内容(包括2)都是被认为是true,接着执行下一次循环;第三部分一般是循环变量的自增和自减,也可以写其他代码,并不影响循环,但务必为执行代码或是空,不能为一数值或是true 和false

最后,总结一下就是,如果你的循环语句后有循环体的话,是一定会无限执行下去的,因为你两个判断的结果都是true

共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!