2014-09-27 121 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