我试图将其计算为 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);
}
}
最佳答案
问题在乘法之前 - 它在这里:
short i=056;
这是一个八进制字面量,十进制值为 46。所以您实际上得到的结果是 46 * 47,这确实是 2162。
不过,我强烈建议您不要使用像i *=++i
这样的代码。对于所有相关人员来说,使用 i *= i + 1
会更简单。我还建议您不要使用八进制文字。
关于java - 运算符优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17917353/