为什么这个循环无限运作?

Bea*_*ude 3 java

class kk{
    public static void main(String args[]){
        int n=0;
        for (byte i = 0; i<=255; i++) 
        { 
             n++;
        }
        System.out.println(n);
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的for循环继续无限.如果有人能回答为什么,我将不胜感激?

Jac*_*ack 9

因为Java中的任何数值都是默认签名的.

因此,a byte保持范围内的值[-128, 127],该范围始终满足for循环条件.无论何时i == 127,加入1i把它变成-128.