陷阱 - 八进制文字

请考虑以下代码段:

// 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。