三元运算符
x?y:z
当x表达式结果为真时,执行y,当x表达式结果为假时,结果为z。
int a = 3;
int b = 5;
// 3 > 5 结果为false,故结果为 "b大"
System.out.println(a > b ? "a大" : "b大");
// 3 < 5 结果为true,故结果为 3
System.out.println(a < b ? a : b);
运算符的优先级(从高到低)
- 后缀运算符:++、–
- 一元运算符:+、-、!、~、++、–、(类型)
- 乘法运算符:*、/、%
- 加法运算符:+、-
- 移位运算符:<<、>>、>>>
- 关系运算符:<、<=、>、>=
- 相等运算符:==、!=
- 按位与运算符:&
- 按位异或运算符:^
- 按位或运算符:|
- 逻辑与运算符:&&
- 逻辑或运算符:||
- 条件运算符:? :
- 赋值运算符:=、+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=、>>>=
需要注意的是,如果不确定运算符的优先级,可以使用括号来明确运算的顺序。例如:
int a = 10, b = 3, c = 5;
int d = (a + b) * c; // 先执行加法运算,再执行乘法运算