2014-09-27 158 views
2

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

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

我得到的输出是为什么被印刷

0 
1 
2 
3 
4 
5 
6 
7 

这些数字?

+1

当你领先的零,它把八进制 – ngunha02 2014-09-27 03:11:53

+0

有趣。有没有办法将它视为一个整数,以便从1到10迭代而不是从000001迭代到0000010? – 2014-09-27 03:13:12

+1

不使用前导零?或者您可以: (int i = Integer.parseInt(“000000”,10); i ngunha02 2014-09-27 03:20:55

回答

5

以0开头的文字被认为是八进制文字,也就是base-8整数。

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

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