import java.util.*;
class OperatorPrecedenceExp
{
public static void main(String[] args)
{
int e=10;
sum=++e+e--;//e-- should b evaluated first
System.out.println("sum="+sum);
}
}
以上代码打印sum=22
。但根据Java规范e--
应在++e
之前进行评估。所以结果应该是sum=20
而不是sum=22
。Java中的运算符优先级不符合Java规范
*根据java规范'e - '应该在'++ e' *“=>之前被评估吗?你有参考吗?表达式通常从左到右进行求值...... – assylias 2014-08-30 11:35:43
Java中存在的所有问题中,这看起来像是一个很平凡的问题 – ControlAltDel 2014-08-30 11:42:07
正如@assylias指出的那样,您的整个问题似乎都是基于错误的前提。 – 2014-08-30 11:43:46