переполнение в цикле

имеем код

  for (byte i = 126; i>5 ; i++) {
        System.out.println(i);
    }

вывод

126
127

а вот если через while

byte i = 126;
        while (i>5){
        i++;
            System.out.println(i);
    }

вывод будет

127
-128

я предпологал , что после переполнения будет печатать от -128 до 5. какая-то защита от переполнения в цикле? тогда почему while перескочил?


Ответы (1 шт):

Автор решения: Дядя Ваня

Могу ошибаться, но у вас цикл будет выполняться бесконечно т.к. значение с которого начинается цикл будет всегда больше 5 . i++ будет наращивать значение и i >5 не сработает. Если вы хотите после 127 перейти на -128. То наверное нужно установить условие if ( i >= 128) i= -128

→ Ссылка