для раннего завершения цикла при сравнении с Integer.MAX_VALUE и использованием System.out.println

Когда я запускаю этот класс, цикл for, кажется, заканчивается рано

class Test {

    public static void main(String[] args) {
        int result = 0;
        int end = Integer.MAX_VALUE;
        int i;
        for (i = 1; i <= end; i += 2) {
            System.out.println(i);
        }
        System.out.println("End:" + i);
    }

}

Выход:

1
3
5
...
31173
31175
End:31177

Почему это заканчивается там? Интересно, если бы я удалилSystem.out.println(i) в цикле, вывод будетEnd:-2147483647, Очевидно, значение вi имеетwrapped round.

Java-версия, которую я использую,

Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)

Ответы на вопрос(2)

Ваш ответ на вопрос