陷阱 - 八进制文字
请考虑以下代码段:
// 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。