一、算术运算符
加号 +
- 加号在操作数值、字符、字符串时,其结果是不同的
- 当两个字符相加得到的是 ASCII 码表值
- 当操作字符串时它是字符串连接运算符
除号 /
- 如果除法运算符的两个操作数都是整数类型,则计算结果也是整数,此时除数不能是 0,否则将引发除以零异常 ArithmeticException: / by zero
- 如果除法运算符的两个操作数有 1 个是浮点数,或者 2 个都是浮点数,则计算结果也是浮点数,此时允许除数是 0,或者 0.0,得到结果是正无穷大或负无穷大
取模(求余数)%
- 格式:被模数 % 模数
- 模数的符号忽略不计,结果的正负取决于被模数
- 如果求余运算的两个操作数都是整数类型,则求余运算的第二个运算数不能是 0,否则将引发除以零异常 ArithmeticException: / by zero
自增 ++ 和 自减 --
- 自增、自减操作都是直接修改变量的值(读、改、写),不经过操作数栈
- 前置 ( ++i ):+和--在变量前,变量先自增或者自减,再参与运算
- 后置 ( i++ ):++和--在变量后,变量是先去参与运算,再进行自增或者自减
-
++ 和 -- 无论放在变量的前边还是后边,单独写一行结果是一样的
二、赋值运算符
- 格式:变量名 = 表达式;
- 表达式就是符号(如加号、减号)与操作数(如b,3等)的组合
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | a=10 |
+= | 加后赋值 | a=a+b |
-= | 减后赋值 | a=a-b |
*= | 乘后赋值 | a=a*b |
/= | 除后赋值 | a=a/b |
%= | 取余后赋值 | a=a%b |
三、关系运算符
运算符 | 含义 | 示例 | 结果 |
---|---|---|---|
== | 等于 | 5==6 | false |
!= | 不等于 | 5!=6 | true |
> | 大于 | 5>9 | false |
< | 小于 | 5<9 | true |
>= | 大于等于 | 5>=8 | false |
<= | 小于等于 | 5<=8 | true |
- 关系运算符的结果是 boolean 类型
- =为赋值运算符,==为等于运算符
四、逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑且 | 并且,两边都为真,结果才为真 |
| | 逻辑或 | 或者,两边都为假,结果才是假 |
^ | 逻辑异或 | 相同为false,不同为true |
! | 逻辑非 | 取反 |
五、短路逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 结果和&相同,但是有短路效果 |
|| | 短路或 | 结果和 | 相同,但是有短路效果 |
&&和&的区别:
&&具有短路功能,当&&左边表达式为false的时候,直接判断整个&&运算结果为false,&&右边不再进行计算
&不具有短路功能,不管&左边表达式的结果为true还是false,&右边表达式都要进行计算
|| 和 | 的区别:
||
和|
的区别:|| 具有短路功能,当 || 左边表达式为true的时候,直接判断整个 || 运算结果为true,|| 右边不再进行计算
| 不具有短路功能,不管 | 左边表达式的结果为true还是false,| 右边表达式都要进行计算
六、条件运算符
格式:
条件 ? 表达式1 : 表达式2
计算规则
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
嵌套条件运算符
格式:
条件 ?(条件 ? 表达式1 : 表达式2):(条件 ? 表达式1 : 表达式2)