Java基础(三):运算符

📅 2026/7/11 6:35:37 👁️ 阅读次数 📝 编程学习
Java基础(三):运算符

Java的运算符主要包括算数运算符,赋值运算符,比较运算符,逻辑运算符,位运算符与条件运算符。

1.算数运算符

1.1加减乘除

算术运算符主要是做加减乘除取模。加减乘除自然不必多说,我们来介绍一下取模。

1.2取模

取模运算符%是编程基础运算符之一,用来计算两数相除后的余数,奇偶判断、循环轮询、数字截取等功能都依赖它,是开发高频工具。

比如要判断一个数字的奇偶,可以模2,余1为奇,余0为偶。

取模还可以拆分数字,

例:567 567 % 10 = 7

567 / 10 = 56

56 % 10 = 6 56 / 10 = 5

5 % 10 = 5

1.3自增自减符

1.如果单独使用,自增自减没有任何区别。

不论是i++;还是++i;都是对i进行+1。

2.如果混合使用,比如i=1;

j=++i;和j=i++;那么i的自增就会影响j的值。

j=i++;是j先等于i,然后i再++,也就是j=1,i=2。

j=++i;是i先++,然后j再取i的值,也就是i=2,j=2。

2.赋值运算符

写代码时我们总离不开存数据,赋值运算符就是装载数值的工具。

a是变量,a=5就是将5放入变量a里面。

而后面的+=,-=等属于复合赋值运算符,本质上就是简写语法,等价于以下写法。

3.比较运算符

比较运算符只需要记住!是否定的意思,!=也就是不等于。

记住了这个,剩下的比较运算符也就信手拈来啦。。

4.逻辑运算符

逻辑运算符是针对两个布尔类型。

4.1逻辑与&&

逻辑与对于两个布尔类型,可以理解为,前者和后者同时满足,整体才是true。

如果前者就不满足,那么语法上就会直接结束这个语句。不执行后者。

如图所示,a<3已经返回的是false,那么++a将不会执行,也就是说a最终的结果仍然是5。

4.2逻辑或||

逻辑或对于两个布尔类型,可以简单理解为,只需要前者或后者满足,就能返回true。

但同样的,和逻辑与运算符类似,如果前者语句满足条件,返回true,那么系统就会默认整体语句为真,后者直接执行。

如图所示,前者为真的情况下,就算后者为假,++num也依旧执行。

4.3逻辑非

逻辑非的作用主要是取反。

常见用法是判空。。

5.按位运算符

按位运算符主要是针对二进制数值

5.1按位与

按位与针对两数字的二进制形式,对应位全1才为1,有0就是0。清除二进制某一位。

比如3&5

0000 0011-----------最终结果是0000 0001

0000 0101 也就是1

他的使用场景主要有:1.判断奇偶:n&1,结果1是奇数,0 是偶数。

2.清除二进制某一位。

5.2按位或

按位与针对两数字的二进制形式,对应位全0才为0,有1就是1。

比如3|5

0000 0011---------------最终结果是0000 0111

0000 0101 也就是7

5.3按位异或

按位与针对两数字的二进制形式,对应相位相同为0,不同为1。

比如3^5

0000 0011---------------最终结果是0000 0110

0000 0101 也就是6

使用场景:1.判断两数字是否相同,n^n=0。

2.n^0=n。

5.4按位取反

按位与针对单一数字的二进制形式,把每一位1变成0,0变成1。

5.5左移运算符和右移运算符(<<和>>)

左移运算符:按位与针对单一数字的二进制形式,将所有比特位向左移动1位,最右边补0。向左移一位就相当于乘以2。

右移运算符:按位与针对单一数字的二进制形式,将所有比特位向右移动,最左边补符号位。向右移一位,就相当于除以2。

5.6无符号右移>>>

无符号右移,不论正数还是负数,左边统一补0。

因为右边没有符号位,所以没有无符号左移。

6.条件运算符

条件运算符只有⼀个:
表达式1 ?表达式2 :表达式3
表达式1为true,输出表达式2
表达式1为false,输出表达式3

7.运算符的优先级

在一条表达式中,各个运算符可以混合起来进行运算,但是运算符的优先级不同, 比如: * 和 / 的优先级要高于 + 和 - ,有些情况下稍不注意,可能就会造成很大的麻烦。

注意:运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号即可。。。。