为什么在java中这是一个无限循环?
除了+++--><=之外,我不能使用任何其他数学符号,我很难弄清楚为什么这是一个无限循环为什么在java中这是一个无限循环?,java,Java,除了+++-->
while (d < n)
{
System.out.print(d + " ");
for (count = 0 ; count < d ; count++)
{
d++;
}
for (count = d; count > 0; count--)
{
}
}
while(d0;计数--)
{
}
}
因为你在循环中改变了d..因为d总是在增加,你永远不会逃脱循环while block但是没有问题
for (count = 0 ; count < d ; count++)
{
d++;
}
for(count=0;count
此块的
不正确。如果d
已经大于count
它将成为一个无限循环。假设d=2,计数=0。第二个循环d=3
,count=1
。第三个循环d=4
,count=2
,它是这样继续的。假设d
和n
都是int
类型,并且外部循环实际上是迭代的
情况1-如果d
最初为零或负,则for
循环都不会迭代。因此,d
永远不会改变,因此d
不能停止为真。因此,while
循环将永远不会结束
情况2-如果d
为正,则在while
循环的第一次迭代中,对于循环的第一次同时增加计数和d
。的条件将继续运行,直到d
实现整数溢出并成为integer.MIN\u值。然后退出
循环的。但是,while
循环的第二次迭代与案例1类似-它不会结束。在每次迭代中增加d并以相同的数量计数。所以计数永远不会小于d。d
的数据类型是什么?如果d
是整数类型,答案就不同于如果它是浮点类型。不,这只是故事的一半。如果d
是int
,它将很快溢出,当到达Integer.MIN\u值时,内部循环将结束。问题是它将小于n
,因此我们无法跳出外部循环。除非您得到整数溢出。然后它变得有趣了!是的,但如果你想解释的话,这是另一个又长又深的故事。嗯,是的,我已经解释过了。故事没那么长。你的答案不是真的-如果d
是int
或long
,那么for
循环不会永远持续下去。