x的初始值会使循环无限大?我被告知答案是123,但我不明白怎么做。有人可以解释一下吗?
do
{
x = x - 3;
} while (x < 120);
答案 0 :(得分:1)
没有值会导致循环成为无限循环。在java中,整数原始值下溢到正数,因此这个循环最终会结束。
举个例子:
int x = Integer.MIN_VALUE;
do {
x = x - 3;
System.out.println(x);
} while (x < 120);
将输出:
2147483645
答案 1 :(得分:1)
为了进一步理解这一点,小数122的32位整数值是
00000000000000000000000001111010
如果你减少,你最终会变为零:
00000000000000000000000000000000
再减1次,然后到-1:
11111111111111111111111111111111
再次减少并获得-2:
11111111111111111111111111111110
减少一大堆次数并最终达到最大负数:
10000000000000000000000000000000
再次减少并获得最大正数:
01111111111111111111111111111111