while语句死循环问题

img


img


两个差不多的while语句,图片1却是死循环,有什么解决办法吗,求帮助!!

img


这是更完整的图1

排查这个问题的最好的办法就是断点调试
你给一个可以直接运行的代码
我可以调试

死循环说明cur !=null 永远都不成立,即cur一直都有值,能在while 里面让cur等于null条件成立才能跳出循环,所以你要看cur指向下一进程一直都存在,不然就要换思路换条件去实现了,第二张图片不是很完整,看到head2赋给了cur,两个等价对象指向同一个对象,cur变成谁即是head2变成谁,反过来一样,它们都是同一个对象,能结束说明head2在什么时候等于null了,从而cur跟着等价于head2变成了null,结束循环

不是有差别吗,图2把较小值赋给mintime,而图1把较大值赋给mintime,按照你的产量名,mintime不应该存小值?

从你两张图代码比较重可以看出来,差别就是对mintime赋值的大小;那么,图一赋值0死循环,图二赋值1000是正常的,那么只能说明当mintime=0是,if语句的条件不满足呀,都不会进入,从导致内部所有条件都是没有变化的就一直死循环了。应该可通过调试,看看图一代码中每一个循环周期有没有进入到if语句。如此就需要看看自己工程逻辑为什么需要将其设置为0,并且循环中cur.runtime一直不会小于等于0的原因了。