目录
一、赋值运算符
二、算术运算符
三、复合运算符
四、关系运算符
五、逻辑运算符
六、条件运算符
七、运算符的优先级
一、赋值运算符
赋值运算符:=,最简单的一个运算符 ,将=右边表达式的结果或者变量里的数据或者数据赋值给=左边的变量.
表达式:表达式就是符号(如加号、减号)与操作数(如b,3等)的组合
例如:直接将一个数据通过赋值运算符存储在num1变量中 int num1 = 100;
将一个变量(数据)通过赋值运算符存储在num2变量中 int num2 =num1;
将一个表达式num1+num2的结果通过赋值运算符存储在sum变量中 int sum =num1+num2;
二、算术运算符
算术运算符:+(加法) -(减法) *(乘法) /(除法) %(取模/取余) ++(自增) --(自减)
int num1 = 20;
int num2 = 3;
加法运算
int result1 =num1+num2;
System.out.println("num1+num2="+result1);//23
减法运算
int result2 =num1-num2;
System.out.println("num1-num2="+result2);//17
乘法运算
int result3 =num1*num2;
System.out.println("num1*num2="+result3);//60
除法运算:取得是除法运算的商结果
int result4 =num1/num2;
System.out.println("num1/num2="+result4);//6
取余运算/取模运算:取得是除法运算的余数结果
int result5 =num1%num2;
System.out.println("num1%num2="+result5);//2
++:自增运算符,执行一次,变量值+1,++可以在变量的前面,也可以在变量的后面
-- :自减运算符,执行一次,变量值-1,--可以在变量的前面,也可以在变量的后面
问:++和--修饰的变量参与了运算,又会是什么结果?
++和--在变量的前面,变量先进行自增或者自减操作,然后再将自增或者自减后的结果拿去参与相应的运算
++和--在变量的后面,变量先去参与其它运算,参与完运算之后,再回来进行自增或者自减操做
++操作
int num1 = 100;
System.out.println(num1);// 100
num1++;
System.out.println(num1);// 101
++num1;
System.out.println(num1);// 102
操作
int num2 = 10;
System.out.println(num2);// 10
num2--;
System.out.println(num2);// 9
--num2;
System.out.println(num2);// 8
int m = 100;
System.out.println("m=" + m);// m=100
++在变量的后面,变量先去参与赋值运算,也就是将m的值100赋值给了n,赋值完之后m的值+1
int n = m++;
System.out.println("m=" + m);// m=101
System.out.println("n=" + n);// n=100
int k = 200;
System.out.println("k=" + k);// k=200
++在变量的前面,变量先进行+1操作,变成了201,然后将201的值赋值给h这个变量
int h = ++k;
System.out.println("k=" + k);// k=201
System.out.println("h=" + h);// h=201
System.out.println("------------");
int w = 300;
System.out.println("w=" + w);// w=300
--在变量的后面,变量先去参与赋值运算,也就是将w的值300赋值给了y,赋值完之后w的值-1
int y = w--;
System.out.println("w=" + w);// w=299
System.out.println("y=" + y);// y=300
int a = 400;
System.out.println("a=" + a);// a=400
--在变量的前面,变量先进行-1操作,变成了399,然后将399的值赋值给b这个变量
int b = --a;
System.out.println("a=" + a);// a=399
System.out.println("b=" + b);// b=399
三、复合运算符
复合算术运算符:+=, -= ,*=, /=, %=
a+=b-------->a=a+b
a-=b--------->a=a-b
a*=b--------->a=a*b
a/=b---------->a=a/b
a%=b---------->a=a%b
四、关系运算符
关系运算符:>, >=, < ,<=, ==, !=
关系运算符的结果为布尔类型,要么成立(true),要么不成立(false)
>、<、>=、<= 运算符的优先级别高于==、!=
>、<、>=、<=运算符只支持数值类型的数据比较,==和!=可以用于引用数据类型数据比较
注意:=为赋值运算符,==为关系运算符,两者注意区分
五、逻辑运算符
逻辑运算符:&(与) ,&&(短路与), |(或), ||(短路或), !(非)
与运算和或运算左右两边都需要一个布尔类型的数据或者表达式 。
非运算符只需要在右边有一个布尔类型的数据或者表达式。
逻辑运算符的运算结果还为布尔类型。
&和&&的运算规律是一样的:只有当&或者&&左右两边的结果都为true,整个&或者&&的运算结果才为true,其它的情况,运算结果都为false。
|和||的运算规律是一样的:只要|或者||左右两边的表达式有一个结果为true,则整个|或者||的运算结果就为true,只有当|或者||左右表达式两边同时为false,整个|或者||运算结果才为false。
!运算符的运算规律:当!右边表达式结果为true,则!运算结果为false,当!右边表达式为false,则!运算结果为true。
&和&&的区别:
&&具有段落功能,当&&左边表达式的结果为false,则直接判断整个&&的运算结果为false,不再计算&&右边表达式的结果,从而造成&&右边表达式短路
&不具有短路功能,不管&左边表达式的结果为true还是false, &右边表达式的结果都需要进行计算,计算完,再判断&的运算结果
|和||的区别:
||具有短路功能,当||左边表达式的结果为true,则直接判断||运算结果为true,不再计算||右边表达式的结果,右边表达式被短路
|不具有短路功能,不管|左边表达式的结果为true还是false,|右边的表达式都会进行计算,计算完后再判断|的运算结果
六、条件运算符
条件运算符(三目运算符/三元运算符)
语法规则:
条件?表达式1:表达式2;
执行规律:
如果条件为true,执行表达式1
如果条件为false,执行表达式2
条件运算符的嵌套:一个条件运算符中包含另外一个或者多个条件运算符
条件1?(条件2?表达式1:表达式2):(条件3?表达式3:表达式4);
条件1为true,则进入第一个()中判断条件2
如果条件2为true,则执行表达式1
如果条件2为false,则执行表达式2
如果条件1为false,则进入第二个()中判断条件3
如果条件3为true,则执行表达式3
如果条件3为false,则执行表达式4
七、运算符的优先级
1.单目运算符包括!、++、--,优先级别高
2.优先级别最低的是赋值运算符=
3.可以通过()控制表达式的运算顺序,()的优先级最高
4.从由向左结合性的只有赋值运算符、三目运算符和单目
5.算数运算符>关系运算符>逻辑运算符