int k=0; while(k=1) k=k-1; 为什么这个是无限循环???

如题所述

这个不是无限循环。
原因是:while括号内的条件为真时,执行循环体。k值原先为0,第一次判断,0=1为假,所以不执行循环体。然后循环结束。k值仍为0。追答

哦,k 值是-1

追问

然后呢

所以就是不执行?

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-25
因为 进行while(k=1) 后k的值会一直为1 整个k=1=true表达式不会等于0=false追问

那不应该是不执行吗?

追答

k=1 后 等价于 true 执行的

追问

但k是0,应该怎么也达不到k=1吧

追答

循环体中k为0,然后 再次循环时 k=1 被赋值了

追问

哦 谢谢了

本回答被提问者采纳
第2个回答  2016-01-10
恩,相当ture,死循环,想要跳出,加break
相似回答