我有这个代码运行但永远不会停止。
class A {
public static void main(String[] args) {
for (byte index = 0; index < 128; index++)
{
System.out.println(index);
}
}
}
有人可以向我解释为什么它会循环播放。
答案 0 :(得分:12)
在Java中,byte
只能表示-128到127之间的值。这意味着 index
的每个可能值都小于128,并且循环无法终止与目前的情况。当index
达到127时,它只会溢出到-128并且循环继续。
有关Java整数类型的更多详细信息,请参阅JLS。
答案 1 :(得分:3)
字节是1字节类型,因此条件i&lt; 128总是如此。 当你添加1到127时,它会溢出并变为-128并再次从那里开始。这就是为什么你会得到无限循环。
答案 2 :(得分:0)
因为它永远不会达到128 ..字节只有最大值为127 ..所以当127 + 1时它会变为-128这是真的..所以它总是会再循环..所以你需要从字节改变到int ..