运算符
数学运算符
+、-、*、/、%(取余|模)
int a=10;
int b=3;
System.out.println(a / b);//3
System.out.println(a % b);//1
赋值运算符
=、(+=、-=、*=、/=、%= :先计算,后赋值,如+=意为先相加,再赋值)
- 赋值运算符可以防止发生自动类型提升
int d=10;
//d=d+0.5; 会发生自动类型提升
d+=5.5;
System.out.println(d);//15
比较运算符
<(小于),>(大于),>=(大于等于) ,<=(小于等于) , ==(等于) , !=(不等于)
- 结果一定为boolean类型
System.out.println(1 > 1);//f
System.out.println(1 < 2);//t
System.out.println(2 >= 1);//t
System.out.println(2 <= 2);//t
System.out.println(3 == 1);//f
System.out.println(3 != 1);//t
逻辑运算符
运算符 | 含义 | 使用 |
---|---|---|
&& | 逻辑与 | 表示并且,多方同时满足才为true,有一方为false则结果为false |
|| | 逻辑或 | 表示或者,一方为true则为true,全为false才为false |
! | 逻辑非 | 表示取反 |
& | 逻辑与 | 表示并且,多方同时满足才为true,有一方为false则结果为false |
| | 逻辑或 | 表示或者,一方为true则为true,全为false才为false |
- 衔接的必须为布尔表达式(结果为boolean类型的表达式)
System.out.println( 1+1==2 && 2+2==4);//t
System.out.println(1 > 2 && 2 < 3);//f
System.out.println(1 > 2 || 2 < 3);//t
System.out.println(1 > 2 || 2 > 3);//f
System.out.println(!(1==1));//f
短路机制:当运算到可以奠定最终结果的表达式时,后续表达式将不再判断
&&和||:短路运算符
&和|:非短路运算符。无论如何所有表达式都会正常执行
一元运算符
运算符 | 写法 | 含义 |
---|---|---|
++ | 变量名++ 或者 ++变量名 | 数值+1,相当于n+=1 |
– | 变量名-- 或者 --变量名 | 数值-1,相当于n-=1 |
- 无论运算符在前还是在后,变量本身的值一定会进行变化
- 运算符在前,表达式的结果为变量计算之后的值
- 运算符在后,表达式的结果为变量计算之前的值
int n=1;
int b=(n++) + (++n) + (--n) + (n--);
System.out.println("n: "+n);//1
System.out.println("b: "+b);//8
三元运算符
布尔表达式 ? 结果1 : 结果2
- 执行流程:当布尔表达式结果为true时,执行结果1,否则执行结果2
- 结果1和结果2可以为一个值或表达式
//判断变量n是否为偶数并输出
int n=11;
System.out.println( n%2==0 ? "偶数" : "不是偶数" );
int b=( n%2==0 ? n*10 : n+1);
System.out.println("b: "+b);