目录
前言
Hi~ 你好!
欢迎点击我的博客 : )
这是我的学习总结,希望也能帮助到你
我的博客地址:hi~,我在这里~,欢迎关注哦,
三连不迷路,优质内容持续更新!
一.什么是运算
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算
计算机最基本用途之一:执行数学运算
表达式=变量+运算符
二.算数运算符
1.加减乘除模
加减乘除的运算不过多说明,主要来阐述除和模
1.除 /
除 : /
System.out.println(7/2); 结果取整
System.out.println((float) 7/2); 对7强转为浮点数,结果为浮点数
System.out.println(7/(float)2); 对2强转为浮点数,结果为浮点数
System.out.println((float) (7/2)); 对7/2先运算为整数,在强转为浮点数
结果为: 3 3.5 3.5 3.0
2.模 %
System.out.println(10%3); 商3 余1
System.out.println(10%-3); 商-3 余1
System.out.println(-10%3); 商-3 余-1
System.out.println(-10%-3); 商3 余-1
System.out.println(12.5%3); 商4 余0.5
结果为: 1
1
-1
-1
0.5
2.增量运算符
+= -= *= /=
short sh = 1;
System.out.println(sh);
short sh2 = 2;
sh = sh + 1; short 不足4个字节,类型提升
右边是int 左边是short 会报错
sh +=1; 不报错,相当于帮助进行了强转
System.out.println(sh);
结果为 : 1
2
3.自增自减
1.在单行中,前置和后置无差别
int a = 0;
int b = 0;
a++;
++b;
System.out.println(a); 1
System.out.println(b); 1
2.在运算时,前置后置有差别
自增运算,自减同理
int a = 0;
int b = 0;
int c = a++; 先赋值给c ,再将a+1
int d = ++b; 先给b+1,再赋值给d;
System.out.println(c); 0
System.out.println(d); 1
System.out.println(a); 1 值已经改变
System.out.println(b); 1
三.关系运算符
== != < > <= >=
结果都是boolean类型,要么是true,要么是false
int a = 10;
int b = 2;
int c =6;
boolean flag = a > b;
System.out.println(flag); true
boolean flag = a > b> c;
报错,a>b先运算成boolean类型,不能再与int类型运算
四.逻辑运算符(重点)
&& || ! 结果都是boolean类型
1.逻辑与(短路与) &&
布尔表达式1&&布尔表达式2要么是true要么是false
特点:1如果表达式1为真,去执行表达式2,如果2也为真,则整体为真
2.如果表达式1为假,那么就不会执行表达式2
int a = 1;
int b =2;
boolean res1 = (a - b) < 0 && (a + b) > 0; //前真后真
boolean res2 = (a - b) < 0 && (a + b) < 0; //前真后假
boolean res3 = (a - b) > 0 && (a + b) > 0; //前假后真
System.out.println(res1);//true
System.out.println(res2);//false
System.out.println(res3);//false
2.逻辑或(短路或) ||
布尔表达式1||布尔表达式2
要么是true要么是false
特点:1如果表达式1为真,就不执行表达式2 .整体已经为真,发生短路
2.如果表达式1为假,就执行表达式2,表达式2为真,整体就为真
int b =2;
boolean res1 = (a - b) < 0 || (a + b) > 0; //前真后真
boolean res2 = (a - b) < 0 || (a + b) < 0; //前真后假
boolean res3 = (a - b) > 0 || (a + b) > 0; //前假后真
boolean res4 = (a - b) > 0 || (a + b) < 0; //前假后假
System.out.println(res1);//true
System.out.println(res2);//true
System.out.println(res3);//true
System.out.println(res4);//false
3.逻辑非 !
!+布尔表达式
int a = 1; int b =2; boolean res = a > b; boolean res2 = !res; System.out.println(res); System.out.println(res2);
4.位运算符
& 按位与 对应位只要有0 结果就是0
| 按位或 对应位只要有1 结果就是1
^ 按位异或 对应位不一样就是1,一样就是0
两个相同的数字异或 结果是0
0^n =n 任何数异或0等于零
按位取反 ~
五.移位运算符
左移 << 右边补0,相当于*2
右移>> 左边 补符号位 , 相当于/2 -1 = 11111111 >>还是-1
>>> 无符号右移 在左边补零 11111111>>>1 = 01111111
int a =128; int b =12; int res = a << 1; //相当于*2 int res2 = b >> 1;//相当于/2 int i = b >>> 1;//相当于/2 System.out.println(res);//256 System.out.println(i);//6
int a =-1; int b =-2; int c =-3; int i = a >> 1; //11111111 -> 1 1111111 int i1 = b >> 1; //11111110 -> 1 1111111 int i2 = c >> 1; // 11111100 -> 11111110 System.out.println(i); //-1 System.out.println(i1);//-1 System.out.println(i2);//-2
三元运算
布尔表达式1?表达式2:表达式3
当表达式1为真时,返回表达式2,否则返回表达式3
System.out.println((true==true)?(true==true)?false:true:true);//false
后记
看到这里,希望能帮到你~
您的点赞 ,收藏 ,关注 是我创作的最大动力!
同时也欢迎在评论区进行交流,共同进步~