Java从零开始学六(运算符)
运算符
一、赋值运算符号
No.
|
赋值运算符号
|
描述
|
1
|
=
|
赋值
|
int num=22;
System.out.println("num= "+num);
num=num-3;
System.out.println("num= "+num);
结果:
num= 22
num= 19
二、一元运算符
No.
|
一元运算符
|
描述
|
1
|
+
|
正号
|
2
|
–
|
负号
|
3
|
!
|
NOT,否
|
boolean flag=false;
int x=10; //定义一个正数
int y=-30; //定义一个负数
System.out.println("x= "+x);
System.out.println("y= "+y);
System.out.println("flag= "+flag+"!b= "+!flag);
结果:
x= 10
y= -30
flag= false !b= true
三、算术运算符
算术运行符和数学中的用法一样
No.
|
算术运算符
|
描述
|
1
|
+
|
加法
|
2
|
–
|
减法
|
3
|
*
|
乘法
|
4
|
/
|
除法
|
5
|
%
|
取模(取余数)
|
int i = 10;
int j = 3;
System.out.println(i+"+"+j +"="+(i+j)); //加法
System.out.println(i+"-"+j +"="+(i-j)); //减法
System.out.println(i+"*"+j +"="+(i*j)); //乘法
System.out.println(i+"/"+j +"="+(i/j)); //除法
System.out.println(i+"%"+j +"="+(i%j)); //取模求余数
结果:
10+3=13
10-3=7
10*3=30
10/3=3
10%3=1
四、关系运算符
No.
|
关系运算符
|
描述
|
1
|
>
|
大于
|
2
|
<
|
小于
|
3
|
>=
|
大于等于
|
4
|
<=
|
小于等于
|
5
|
==
|
等于
|
6
|
!=
|
不等于
|
五、自增与自减运算符
No.
|
自增与自减运算符
|
描述
|
1
|
++
|
自增,变量值加1
|
2
|
--
|
自减,变量值减1
|
int a=3,b=3; //定义整型变量a,b
int x=6,y=6; //定义整型变量x,y
System.out.println("a= "+a); //输出变量a的值
System.out.println("a++="+(a++)+" a= "+a); //输入a++和a++之后a的值3,4
System.out.println("b= "+b);
System.out.println("++b="+(++b)+" b="+b); //值出++b,和++b之后b的值4,4
System.out.println("x= "+x);
System.out.println("x--="+(x--)+" x= "+x); //输出x--和x--之后x的值6,5
System.out.println("y= "+y);
System.out.println("--y="+(--y)+" y="+y); //输出--y和--y之后的值5,5
六、逻辑运算符
No.
|
逻辑运算符
|
描述
|
1
|
&
|
AND,与
|
2
|
&&
|
短路与
|
3
|
|
|
OR,或
|
4
|
||
|
短路或
|
AND及 OR结果表
No.
|
条件1
|
条件2
|
结果
|
|
&&(与)
|
||(或)
|
|||
1
|
true
|
true
|
true
|
true
|
2
|
true
|
false
|
false
|
true
|
3
|
false
|
true
|
false
|
true
|
4
|
false
|
false
|
false
|
false
|
- &&”与“&”
- &&表示短路与
- 对于“与”来说,要求所有的条件都判断,而如果使用“短路与”如果第一个条件为false,则后面的条件将不再判断。
- “||”与“|”
- ||表示短路或
- 对于“或”来说,要求所有的条件都判断,而如果使用“短路或”如果第一个条件为true,则后面的条件将不再判断。
七、括号运算符
No.
|
括号运算符
|
描述
|
1
|
()
|
提高括号中表达式的优先级
|
八、位运算符
No.
|
逻辑运算符
|
描述
|
1
|
&
|
按位与
|
2
|
|
|
按位或
|
3
|
^
|
异或(相同为0,不同为1)
|
4
|
~
|
取反
|
5
|
<<
|
左移位
|
6
|
>>
|
右移位
|
7
|
>>>
|
无符号右移位
|
位运算的结果表
No.
|
二进制数1
|
二进制数1
|
与操作(&)
|
或操作(|)
|
异或操作(^)
|
1
|
0
|
0
|
0
|
0
|
0
|
2
|
0
|
1
|
0
|
1
|
1
|
3
|
1
|
0
|
0
|
1
|
1
|
4
|
1
|
1
|
1
|
1
|
0
|
九、运算符的优先级
优先级
|
运算符
|
类
|
结合性
|
1
|
()
|
括号运算符
|
由左至右
|
1
|
[]
|
方括号运算符
|
由左至右
|
2
|
!、+(正号)、-(负号)
|
一元运算符
|
由右至左
|
2
|
~
|
位逻辑运算符
|
由右至左
|
2
|
++、--
|
递增与递减运算符
|
由右至左
|
3
|
*、/、%
|
算术运算符
|
由左至右
|
4
|
+、-
|
算术运算符
|
由左至右
|
5
|
<<、>>
|
位左移、右移运算符
|
由左至右
|
6
|
>、>=、<、<=
|
关系运算符
|
由左至右
|
7
|
==、!=
|
关系运算符
|
由左至右
|
8
|
&(位运算符AND)
|
位逻辑运算符
|
由左至右
|
9
|
^(位运算符号XOR)
|
位逻辑运算符
|
由左至右
|
10
|
|(位运算符号OR)
|
位逻辑运算符
|
由左至右
|
11
|
&&
|
逻辑运算符
|
由左至右
|
12
|
||
|
逻辑运算符
|
由左至右
|
13
|
?:
|
三目运算符
|
由右至左
|
14
|
=
|
赋值运算符
|
由右至左
|
十、简洁表达式
No.
|
运算符
|
范例用法
|
说明
|
描述
|
1
|
+=
|
a += b
|
a + b的值存放到a中
|
a = a + b
|
2
|
-=
|
a -= b
|
a - b的值存放到a中
|
a = a - b
|
3
|
*=
|
a *= b
|
a * b的值存放到a中
|
a = a * b
|
4
|
/=
|
a /= b
|
a / b的值存放到a中
|
a = a / b
|
5
|
%=
|
a %= b
|
a % b的值存放到a中
|
a = a % b
|
简洁表达式的范例
No.
|
运算符
|
范例
|
执行前
|
说明
|
执行后
|
||
a
|
b
|
a
|
b
|
||||
1
|
+=
|
a += b
|
12
|
3
|
a + b的值存放到a中(同a = a + b)
|
15
|
3
|
2
|
-=
|
a -= b
|
12
|
3
|
a - b的值存放到a中(同a = a – b)
|
9
|
3
|
3
|
*=
|
a *= b
|
12
|
3
|
a * b的值存放到a中(同a = a * b)
|
36
|
3
|
4
|
/=
|
a /= b
|
12
|
3
|
a / b的值存放到a中(同a = a / b)
|
4
|
3
|
5
|
%=
|
a %= b
|
12
|
3
|
a % b 的值存放到a中(同a = a % b)
|
0
|
3
|
6
|
b++
|
a *= b++
|
12
|
3
|
a * b的值存放到a后,b加1(同a = a * b;b++)
|
36
|
4
|
7
|
++b
|
a *= ++b
|
12
|
3
|
b加1后,再将a*b的值存放到a(同b++;a=a*b)
|
48
|
4
|
8
|
b--
|
a *= b--
|
12
|
3
|
a * b的值存放到a后,b减1(同a=a*b;b--)
|
36
|
2
|
9
|
--b
|
a *= --b
|
12
|
3
|
b减1 后,再将a*b的值存放到a(同b--;a=a*b)
|
24
|
2
|