public class InTheLoop {
public static final int END = Integer.MAX_VALUE;
public static final int START = END - 100;
public static void main(String[] args) {
int count = 0;
for (int i = START; i<=END; i++){
count ++;
}
System.out.println(count);
}
}
死循环!
当 i 的值增加到Integer.MAX_VALUE时,此时 i 和END值相等,都是Integer.MAX_VALUE,然后count执行自增运算,此时count值为100;
接着 i 值自增,由于该值越界溢出,变成int中的最小值,所以再次判断循环条件依然满足,则循环继续,count继续自增;
i 的值继续从int的最小值自增到最大值,依此循环,成为死循环。
|