跳转至

运算符

算术运算符

运算符 运算 范例 结果
+ 正号 +7 7
- 负号 b=11;-b -11
+ 9+9 18
- 10-8 2
* 7*8 56
/ 9/9 1
% 取模(取余) 11%9 2
++ 自增 (前):先运算后取值 a=2;b=++a; a=3;b=3
++ 自增 (后):先取值后运算 a=2;b=a++; a=3;b=2
-- 自减 (前):先运算后取值 a=2;b=--a; a=1;b=1
-- 自减 (后):先取值后运算 a=2;b=a--; a=1;b=2
+ 字符串相加 "hsp"+"edu" "hsp edu"

关系运算符

运算符 运算 范例 结果
== 相等于 8 == 7 false
!= 不等于 8 != 7 true
< 小于 8 < 7 false
> 大于 8 > 7 true
<= 小于等于 8 <= 7 false
>= 大于等于 8 >= 7 true
instanceof 检查是否是类的对象 "hsp" instanceof String true

逻辑运算符

  1. 短路与 &&(第一个为假,就不会判断第二个),短路或 ||,取反 !
  2. 逻辑与 &(第一个为假,依旧会判断第二个),逻辑或 |,逻辑异或 ^
a b a&b a&&b a|b a|b !a a^b
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false

Java VS C++

  • 对于 &&||!,你可以认为它们在 C++ 和 Java 中没有任何区别。
  • 对于 &|^,虽然它们在 C++ 中的“官方身份”是位运算符,但当它们被用于布尔值时,其 不短路 的行为和 最终的逻辑结果 与 Java 完全一致。
  • 最大的不同在于 概念层面:Java 明确区分了 & (不短路逻辑) 和 && (短路逻辑),而 C++ 则主要区分 & (位运算) 和 && (逻辑运算),不短路的效果是位运算的自然结果。

赋值运算符

=
+= -= *= /= %=

优先级