基本运算符
-
加 + eg:a+b
-
减 - eg:a-b
-
乘 * eg:a*b
-
除 / eg:a/b
-
取余 % eg: a%b ---- 最后得到的是余数
-
赋值 = eg:a = b ---- 将b的值赋给a
将=右边的值赋给左边
自增与自减
-
自增 ++
我们经常会在程序中看见 a++ 它其实就是 a = a + 1
但其实一个变量自增有两种方式,a++ 与 ++a
那他们之间有什么区别呢?
int a = 1 ; int i = a ++; System.out.println(i); //此时会输出 i = 1 问题来了 ++ 跑到哪里去了? System.out.println(a); //此时会输出 a = 2 原来他在将a的值赋值给i以后才对a进行了++的操作 这么说来,++ a 岂不是先++后赋值啰? int a = 1; int i = ++ a; System.out.println(i) //此时会输出i = 2
这就是 a++ 与 ++a的区别
-
自减 --
与自加相似,自减 a -- 表示 a = a-1
其也存在 a -- 与 --a 的两种写法,这里就不啰嗦了
关系运算符
-
大于 >
-
小于 <
-
等于 ==
-
大于等于 >=
-
小于等于 <=
-
不等于 !=
逻辑运算符
-
与 &&
a && b --- a 与 b全为真则真,否则就为假
短路运算:计算符号左边为假以后就不计算右边了
eg: a && b 中,a若为假,计算机便不会去判断b是否为假了
-
或 ||
a || b --- a||b一个为真便为真,全部为假才为假
-
非 !
! a --- a为真,便为假;a为假,便为真
Math工具类里的一些运算符:
-
pow() --- 幂
eg: double a = Math.pow(2,3) = 2^3 = 8.0
-
abs() --- 绝对值
eg: int a = Math.abs(-13) = 13
还有老多老多了,我这里就不举例了
位运算
-
& / ^ ~
位运算是针对二进制数进行的运算(A与B就是用二进制在表示)
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 ----A与B同时为1则为1
A/B = 0011 1101 ----A与B同时为0则为0
A^B = 0011 0001 ----A与B相同为0不同为1
~B = 1111 0010 ----每一位都取反
-
<< 与 >> (左移符号 与 右移符号)
A = 0000 0010 ----十进制为2 A<<3 就是将1向左移动三位 A = 0001 0000 此时A用二进制表示为16 A>>2 A = 0000 0100
三元运算符
x ? y : z 例子:
int grade = 10
String level = grade<60 ? "及格" : "不及格"
先做grade<60的判断 判断为真,则将:左边的值赋给level 判断为假,则将:右边的值赋给level
字符串连接符
int a = 10 ;
int b = 12 ;
System.out.println(""+ a + b);//输出1012
System.out.println(a+b);//输出22
当输出中带有字符串时,计算机就将 + 看做连接符号
tip: "" 就是我说的字符串