Nir*_*lal 1 java operator-precedence
我试图计算这是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);
}
}
Run Code Online (Sandbox Code Playgroud)
问题出现在乘法之前 - 它就在这里:
short i=056;
Run Code Online (Sandbox Code Playgroud)
这是一个八进制文字,小数值为46.所以你实际上得到了46*47的结果,这确实是2162.
我强烈建议你不要使用代码i *= ++i.对于每个有关人员来说,使用起来都比较简单i *= i + 1.我还建议你不要使用八进制文字.
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |