运算符优先级的更新
现在要考虑更多的运算符,所以应更新第3章中的运算符优先级表,把它们包括在内,如表 4-12 所示
。
表4-12 运算符优先级
优先级 | 运算符 |
---|---|
优 | ++ ,— (用作前缀);+ ,- (一元),! ,~ |
, / , % | |
先 | + ,- |
<< ,>> | |
级 | < ,> ,<= ,>= |
== ,!= | |
由 | & |
^ | |
高 | | |
&& | |
到 | || |
= ,= ,/= ,%= ,+= ,-= ,<<= ,>>= ,&= ,^= | |
低 | ++ ,— (用作后缀) |
该表增加了好几个级别,但它明确定义了下述表达式该如何计算:
var1 = var2 <= 4 && var2 >= 2;
其中 &&
运算符在 <=
和 >=
运算符之后执行(在这行代码中,var2
是一个 int
值)。
这里要注意 ⚠️ 的是,添加括号可以使这样的表达式看起来更清晰。编译器知道用什么顺序执行运算符,但人们常会忘记这个顺序(有时可能想改变这个顺序)。上述表达式也可以写为:
var1 = (var2 <= 4) && (var2 >= 2);
通过明确指定计算的顺序就解决了这个问题。