运算符
一、赋值运算符号
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= -30flag= 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=710*3=3010/3=310%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 |