运算符
- 在java中我们经常使用运算符号,这些运算符我们可以将他们分为算术运算符和逻辑运算符
算术运算符
+ 加 - 减 * 乘 / 除 % 取余
- 在python中 x == (x//y) *y + (x % y)
- 即为:被除数 == 地板除* 除数 + 余数
地板除向下取整
- 而在java中地板除(除法)是直接截取整数部分,所以
-7 % 3 == -1
因为: 是截取小数所以 -7 // 3 == -2
-7 ==(-7/3)_3 +(-7%3) == -2_3 + (-7 % 3)
得:
-7 == -6 + (-7 % 3)
最后得:
-7 % 3 == -1
赋值运算符
=
逻辑运算符
- !(逻辑非):一元运算符,取反。!true为 false,!false为 true。
- &和 &&(逻辑与):两边都为 true,结果才为 true。
- &:无论左边结果如何,都会计算右边。
- &&(短路与):如果左边为 false,则直接返回 false,不再计算右边。效率更高,更常用。
- |和 ||(逻辑或):只要有一边为 true,结果就为 true。
- |:无论左边结果如何,都会计算右边。
- ||(短路或):如果左边为 true,则直接返回 true,不再计算右边。效率更高,更常用。
& | && ||
boolean b = !(x < 0);
true && true
true && false
false && false
true || true
true || false
false || false
条件运算符
条件? 条件成立返回结果:条件不成立返回结果
单目运算符
+ 表示正数 - 表示负
自增自减运算符号
- i++ 在表达式计算完之后再做自增操作
- ++i 是在表达式计算之前就做自增操作
++ --
sum += number;
关系运算符号
优先级高> < <= >= 优先级低== !=
- 需要注意的是,两个不同类型的变量不能比较大小,比如:
System.out.println(3 == 4 == false)
System.out.println(true == 3 == 4)
Ststme.out.println(3 == true < false)
System.out.println(0.1 == (1.3 - 1.2))
- 如果我们希望用java比较两个浮点数那么使用相减之后是否等于某个数,我们可以做减法并取绝对值,然后再去比较一个特别小的数,如果比这个特别小的数还要小,那么就认为这两个浮点数相减之后就是等于某个数
boolean b = math.abs(0.1 - (1.3 - 1.2)) < 0.000001
System.out.prinln(b)
运算符优先级

- 从高到低简单来概括就是:
括号 -> 单目 ->位逻辑 -> 自增自减 -> 算术 -> 位运算 -> 关系运算 -> 逻辑运算 -> 三元运算符 -> 赋值

