算术运算符:+ - * / % ++ - -
例1:
int a = 10;
int b = a++; //a = 11,b = 10(先赋值再自加)
例2:
int a = 10;
int b = ++a;//a = 11,b = 11(先自加再赋值)
关系运算符:> >= < <= == !=
结果一定是布尔类型:true/false
逻辑运算符:
逻辑运算符 | 规则 |
---|---|
&(逻辑与) | 全真为真 |
|(逻辑或) | 有真则真 |
!(逻辑非) | 取反 |
^(逻辑异或) | 两边不同位真 |
&&(短路与) | 结果和&(逻辑与)相同,只不过存在短路现象 |
||(短路或) | 结果和|(逻辑或)相同,只不过存在短路现象 |
短路现象:
举例:
int x = 10;
int y = 8;
System.out.println(x < y & ++x < y);
System.out.println(x); //x输出值为11,说明++x < y 运算了
int x = 10;
int y = 8;
System.out.println(x < y && ++x < y);
System.out.println(x); //x输出值为10,说明++x < y 未运算
原因:因为x < y 结果为false,后面表达式结果不影响最后总式的结果。这种现象称为短路现象。