运算符
一、赋值运算符号
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 |