鉴于此代码:
int p,k=8;
p=k*(++k-8);
System.out.println(p);
当 ++k
被评价k=9
然后就变成 k*(9-8)
给予9*1
int p,k=8;
p=(++k-8)*k;
System.out.println(p);
但是这给出了 9 作为输出
最佳答案
你有一个乘法
left side: k
right side: (++k-8)
正如您所言,大括号优先。但是,您的程序仍然“从左到右”运行。因此首先计算左侧,即 k = 8。然后计算右侧,即 (++k-8) = 1
。
现在我们已经确定了两边,可以将它们相乘:8*1 = 8
。
关于java - 使用前缀增量运算符和括号优先级对数学表达式进行澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54050525/