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