当索引<128时,循环的Java字节不会停止运行

Ala*_*an2 3 java byte

我有这个代码运行但永远不会停止.

class A {
   public static void main(String[] args) {
      for (byte index = 0; index < 128; index++)
      {
          System.out.println(index);
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么它会循环.

NPE*_*NPE 12

在Java中,byte只能表示介于-128和127之间的值.这意味着每个可能的值index都小于128,并且循环不能以当前条件终止.当index达到127时,它只是溢出到-128并且循环继续.

有关Java的整数类型的更多详细信息,请参阅JLS.