优先级
优先级 | 运算符 | 结合性 |
---|---|---|
1 | () | 从左到右 |
2 | ! + - ++ – | 从右到左(单目的+和-) |
3 | * / % | 从左到右 |
4 | + - | 从左到右 |
5 | < <= > >= | 从左到右 |
6 | == != | 从左到右 |
7 | && | 从左到右 |
8 | 逻辑或 | 从左到右 |
9 | = += -= *= /= %= | 从右到左 |
判断优先级的一些原则:
- 单目运算符 > 双目运算符;
- 算术运算符 > 关系运算符 > 赋值运算符;
- 逻辑运算符优先级:!> &&> ||;
- 算术运算符优先级:乘除大于加减;
- 关系运算符优先级:判断是否相等的==和!=的优先级比其他的要低。
补充:
- a++的值是a+1之前的那个值,而++a是a加了1以后的值,但是这两个最后a的值都加了1;
- 逻辑运算中存在短路:逻辑运算是从左向右进行的,如果左边的结果已经能够决定结果了,就不会做右边的计算。如1= =2 && b+=1和1==1 || b+=1中,b的值并不会发生变化。