У меня есть простая программа:
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
в левой части, его значение получает от reset до 0
?
Если кто-то может указать мне на более тонкие детали этого, это будет здорово.
Измените int
на long
и, кажется, печатайте цифры, как ожидалось. Я удивлен тем, как быстро он достигает максимального 32-битного значения!