我有一个简单的程序:
public class Mathz {
static int i = 1;
public static void main(String[] args) {
while (true){
i = i + i;
System.out.println(i);
}
}
}
当我运行这个程序时,输出中对于i
的值始终为0
。我本以为第一次循环后i = 1 + 1
,然后是i = 2 + 2
,接着是i = 4 + 4
等等。这是因为只要我们尝试在左侧重新声明
i
,它的值就会被重置为0
?如果有人能为我指出更细节的问题,那就太好了。
将
int
更改为long
,似乎可以按预期打印数字。我惊讶于它如此快地达到了最大32位值!