我尝试将其计算为i=i*++i
,因此i=56*57
给出了3192,但我的程序显示值为2162:
class Demo {
public static void main(String args[]) {
short i=056;
i*=++i;
System.out.println(i);
}
}
答案 0 :(得分:8)
问题出在乘法之前 - 就在这里:
short i=056;
这是一个八进制字面值,十进制值为46.所以你实际上得到了46 * 47的结果,这确实是2162。
我会强烈建议您不要使用像i *= ++i
这样的代码。所有相关人员使用i *= i + 1
都比较简单。我还建议你不要使用八进制文字。