来自Java的for循环的奇怪输出

时间:2014-09-27 03:09:01

标签: java

因此,为了打印从1到10的数字,我们从i = 1到i <= 10编写一个简单的for循环,并期望看到打印出的数字1 2 3 .. 10。我很好奇如果我为这样的条件添加额外的零会发生什么:

for(int i=000000; i<000010; i++){
    System.out.println(i)
}

我得到的输出是

0
1
2
3
4
5
6
7

为什么要打印这些数字?

1 个答案:

答案 0 :(得分:5)

从0开始的文字被认为是八进制文字,a.k.a base-8整数。

计算其十进制值:010 = 1 *(8 ^ 1)+ 0 *(8 ^ 0)。那是8,所以当我达到8时你的循环就结束了。

http://en.wikipedia.org/wiki/Octal