Skip to content

运算符

运算符概要

什么是运算符?运算符本质上就是一个符号,而这个符号代表了一定的运算规则,举个例子:+ 这个符号,代表的是做加法运算

在 Java 中,提供了一套运算符来操作变量,主要可以分为以下几类

算数运算符
关系运算符
位运算符
逻辑运算符
赋值运算符
其他运算符

既然我们已经理解了运算符的本质,那么,关于运算符的学习,主要掌握两点即可

1.符号是什么样子的
2.这个符号所代表的运算规则是什么

算数运算符

算术运算符和数学中的算数运算是类似的,除了加减乘除以外,还有取余数、自加、自减等操作

+  加
-  减
*  乘
/  除
%  取余
++ 自加
-- 自减

举例:

java
int a = 10;
int b = 20;
// 加法运算
int c = a + b;
System.out.println(c); // 30

取余数

java
int a = 42;
int b = 20;
// 取余数运算
int c = a % b;
System.out.println(c); // 2

自加自减

java
int a = 1;
a++;  // 自己+1
System.out.println(a); // 2
a--;
System.out.println(a); // 1

关系运算符

关系运算符又叫比较运算符,比较大小关系,结果是一个布尔值

==  等于
!=  不等于
>   大于
<   小于
>=  大于等于
<=  小于等于

举个例子:

java
int a = 20;
int b = 30;
// a > b a是否大于b,这里20 > 30 不成立,返回false
System.out.println(a > b);

其他几个符号,大家自行测试,这里关键是要记住这几个符号的作用

逻辑运算符

逻辑运算符主要用来做逻辑判断,返回的结果是布尔值

java
&&  与, 两边表达式都要满足,最终结果返回true,有一个不满足,返回false
||  或, 两边表达式只要有一个满足即可,返回true,两边都不满足,返回false
!  非, 取反

举个例子:

java
int a = 20;
int b = 30;
int c = 10;
// false && true 结果为false,有假为假
System.out.println(a > b && a > c);
// false && true 结果为true 有真为真
System.out.println(a > b || a > c);
// false 取反,结果为true
System.out.println(!(a > b));

注意:逻辑运算符有短路问题,例如: false && true 这样一个表达式,逻辑与的特点是有假为假,那意味着执行 && 前面的表达式为 false 的时候,后面就不会执行了,因为没有必要,同理,如果表达式是 true || false,逻辑或的特点是有真为真,前面都是 true 了,那就没有必要往后再执行了,这种就叫做逻辑运算符段路,后面我们在具体的代码中再来提醒大家,这里先记住这个特性

赋值运算符

赋值运算符是为指定变量分配值的符号,即把值存到某个变量中

=  赋值

+=、-=、*= /= 这种是复合写法,有规律,举例:

a += b  等价于  a = a + b
a -= b  等价于  a = a - b
其他以此类推

条件运算符

变量 = (布尔表达式) ? 值 1 : 值 2

举例:

java
int a = 10;
int b = 20;
// 如果a>b 就把40赋值给c,否则就把50赋值给c
int c = a > b ? 40 : 50;
System.out.println(c);

优先级问题

运算符的优先级说的是先算什么后算什么的问题,每个运算符的权重是不一样的,你可以参考下面的这张图

20221205065702

注意,括号的优先级比较高,因此,在我们写代码的时候如果不清楚优先级,那么你就用括号括起来就行了,这样就能提高优先级,上面的图不需要记,真正遇到优先级问题的时候,再来查也可以