陷阱 - 八進位制文字

請考慮以下程式碼段:

// Print the sum of the numbers 1 to 10
int count = 0;
for (int i = 1; i < 010; i++) {    // Mistake here ....
    count = count + i;
}
System.out.println("The sum of 1 to 10 is " + count);

Java 初學者可能會驚訝地發現上面的程式列印錯誤的答案。它實際上列印數字 1 到 8 的總和。

原因是 Java 編譯器將以數字零(‘0’)開頭的整數文字解釋為八進位制文字,而不是你所期望的十進位制文字。因此,010 是八進位制數 10,十進位制是 8。