UM2L3——运算符

运算符

Java中运算符基本和C#一模一样,就把它当做C#来写即可,CS1——CSharp入门系列

赋值运算符

赋值运算符就是 =​,它可以将某个值赋值给某个变量

1
2
3
int i = 10;
int i2, j2, k2;
i2 = j2 = k2 = 10;

算数运算符

+ - * / %​,0不能作为除数,优先级是* / %​ > + -

1
2
3
i = i + 10;
i += 10;
System.out.println(i);

自增减运算符

  • 自增:++
  • 自减:--
1
2
3
i = 30;
System.out.println(i++); // 先加后用,因此输出30
System.out.println(++i); // 先加后用,因此输出32

输出:

1
2
30
32

比较运算符

>、<、==、>=、<=、!=​,返回值为boolean​值

1
2
boolean b = 3 < 2;
System.out.println(b);

输出:

1
false

逻辑运算符

对两个boolean​值进行逻辑运算,返回boolean​值

  • 逻辑与:&&​ 有假则假 同真为真
  • 逻辑或:||​ 有真则真 同假则假
  • 逻辑非:!​ 真变假 假变真
1
2
3
4
5
b = true && false;
System.out.println(b);
b = true || false;
System.out.println(b);
System.out.println(!b);

输出:

1
2
3
false
true
false

位运算符

用法和C#基本一致:CS1L13——位运算符

  • 位与:&​ (同为1则1,有0则0)
  • 位或:|​ (有1则1)
  • 异或:^​ (相同为0,不同为1)
  • 取反:~​ (1变0, 0变1)
  • 左移:<<
  • 右移:>>​ (最高位保留正负,即最高位为1就补1,最高位为0就补0)
  • 无符号右移:>>>​ (最高位始终补0)

三元运算符

条件表达式 ? 值1 : 值2

1
2
int i3 = true ? 3 : 2;
System.out.println(i3);

输出:

1
3

运算符优先级

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
优先级     运算符          运算符
1 括号 ()
2 正负号 +, -
3 自增减、逻辑非 ++、--、!
4 乘除取余 *、/、%
5 加减 +,-
6 移位运算 <<、>>、>>>
7 比较大小 >、<、>=、<=
8 比较是否相等 ==、!=
9 位与 &
10 异或 ^
11 位或 |
12 逻辑与 &&
13 逻辑或 ||
14 三目运算符 ? :
15 赋值运算符 =