Почему я = я + я даю 0?
У меня есть простая программа:
public class Mathz {
static int i = 1;
public static void main(String[] args) {
while (true){
i = i + i;
System.out.println(i);
}
}
}
Когда я запускаю эту программу, я вижу только0
заi
в моем выводе. Я ожидал, что в первый раз у нас будетi = 1 + 1
, с последующимi = 2 + 2
, с последующимi = 4 + 4
и т.п.
Связано ли это с тем, что как только мы попытаемся повторно объявитьi
на левой стороне его значение сбрасывается на0
?
Если кто-то может указать мне на мелкие детали этого, это было бы здорово.
Изменитьint
вlong
и, кажется, печатать цифры, как и ожидалось. Я удивлен тем, как быстро он достигает максимального 32-битного значения!