一、主要的运算符种类
1.算术运算符:+、-、*、/、++、--等。
2.关系运算符:<、>、<=、==、!=等。
3.逻辑运算符
4.赋值运算符
5.三目运算符
二、算术运算符详
1.算术运算符种类
运算符 | 运算规则 | 范例 | 结果 |
+ | 正号 | +3 | 3 |
+ | 加 | 2+3 | 5 |
+ | 连接字符串 | “中”+“国” | “中国” |
- | 负号 | int a=3;-a | -3 |
- | 减 | 3-1 | 2 |
* | 乘 | 2*3 | 6 |
/ | 除 | 5/2 | 2 |
% | 取余 | 5/2 | 1 |
++ | 自增 | int a=1;a++/++a | 2 |
-- | 自减 | int b=3;a--/--a | 2 |
- 加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
- 除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
- “%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
- 整数做被除数,0不能做除数,否则报错。
2.++和--的注意事项
++运算符,会在原有值的基础上自增1;
--运算符,会在原有值的基础上自减1。
public class operator { public static void main(String[] args){ int a = 3; int b = 3; a++; b--; System.out.println(a); System.out.println(b); //输出结果为4 } }
++,--运算符单独使用,不参与运算操作时,运算符前后位置导致的运算结果是一致的。
当参与运算操作时
public class operator { public static void main(String[] args){ int a = 3; int b; b = a++ + 10; System.out.println(a); System.out.println(b); //输出结果为a=4,b=13 } }
当++ --运算符放置在变量前边时
public class operator { public static void main(String[] args){ int a = 3; int b; b = ++a + 10; System.out.println(a); System.out.println(b); //输出结果为a=4,b=14 } }
- ++,--运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;
- ++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。
三、赋值运算符
运算符 | 运算规则 | 范例 | 结果 |
= | 赋值 | int a=2 | 2 |
+= | 加后赋值 | int a=2,a+=2 | 4 |
-= | 减后赋值 | int a=2,a-=2 | 0 |
*= | 乘后赋值 | int a=2,a*=2 | 4 |
/= | 整除后赋值 | int a=2,a/=2 | 1 |
%= | 取模后赋值 | int a=2,a%=2 | 0 |
这里主要注意的是+=、-+...
/* * 赋值运算符 * +=, -=, *=, /=, %= : * 上面的运算符作用:先进行数学运算,然后将值赋给=号左侧 * 注意:赋值运算符左边必须是变量 */ public class OperatorDemo2 { public static void main(String[] args) { byte x = 10; x += 20;// 相当于 x = (byte)(x+20); System.out.println(x); } }
四、关系运算符
运算符 | 运算规则 | 范例 | 结果 |
== | 相等于 | 4==3 | False |
!= | 不等于 | 4!=3 | True |
< | 小于 | 4<3 | False |
> | 大于 | 4>3 | True |
<= | 小于等于 | 4<=3 | False |
>= | 大于等于 | 4>=3 | True |
一个=号为赋值,两个=(==)为判断,会返回一个布尔类型的值(true、false)
五、逻辑运算符
运算符 | 运算规则 | 范例 | 结果 |
& | 与 | false&true | False |
| | 或 | false|true | True |
^ | 异或 | true^flase | True |
! | 非 | !true | Flase |
&& | 短路与 | false&&true | False |
|| | 短路或 | false||true | True |
逻辑运算符通常连接两个其他表达式计算后的布尔值结果
当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断。
public class operator { public static void main(String[] args){ //短路与或 int e=2; int f=3; System.out.println((e>f)&(e==1));//false&false--false System.out.println((e>f)&(e<f));//false&true--false System.out.println((e>f)&(e==2));//true&true--true System.out.println((e>f)|(e==1));//false|false--false System.out.println((e>f)|(e==1));//false|true--true System.out.println((e>f)|(e==1));//false|true--true System.out.println((e>f)^(e==1));//false^false--false System.out.println((e>f)^(e==1));//false^true--true System.out.println((e>f)^(e==1));//false^true--true System.out.println(!(e>f));//false--true System.out.println(!(e<f));//true--false System.out.println((e>f)&&(e==1));//false&&false--false System.out.println((e>f)&&(e<b));//false&&true--false System.out.println((e<f)&&(e==2));//true&&true--true System.out.println((e>f)||(e==1));//false||false--false System.out.println((e>f)||(e<b));//false||true--true System.out.println((e<f)||(e==1));//true||false--true } }
六、三目运算符
格式:
(条件表达式)?表达式1:表达式2;
若条件成立,则返回表达式1,若不成立则返回表达式2
public class operator { public static void main(String[] args){ System.out.println(3>2?"正确":"错误"); } }
七、运算符的优先级
优先级 | 描述 | 运算符 |
1 | 括号 | ()、[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、--、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |