关于我初始学习java的知识和心得体会以及需要注意的地方(十)

本文深入讲解了编程中的各种运算符,包括算术、关系、逻辑、赋值、字符串连接及三元运算符。重点解析了++和--运算符的前后置使用规则,以及逻辑与、逻辑或和短路运算符的区别。同时,介绍了赋值运算符的执行规则和扩展赋值运算符的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接下来要讲解运算符,运算符有:算术运算符
关系运算符
逻辑运算符
赋值运算符
字符串连接运算符
三元运算符

算术运算符:+ 求和
- 相减
* 乘积
/ 商
% 求余数(取模)

                            ++ 自加1
                            -- 自减1

注意:一个表达式当中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。没有必要去专门记忆运算符的优先级

int k = 10;
k++
k 11 ++运算符可以出现在变量后面(单目运算符)

int y = 10
++y
y 11 ++运算符可以出现在变量前面(单目运算符)
小结:++运算符可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后,只要++运算结束,该变量中的值一定会自加1

++出现在变量后
规则:先做赋值运算,再对变量中保存的值进行自加1
int a = 100;
int b = a++;
a 101
b 100

++出现在变量前
规则:先进行自加1运算,然后再进行赋值操作
int m = 20;
int n = ++m;
m 21
n 21

int e = 100;
e++ 100
e 101

int s = 100;
++s
s
–s
s++
s–
s–
s–
s

答案分别是:101,101,100,100,101,100,99,98

关系运算符:> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于

= 是赋值运算符
==是关系运算符

关系运算符的运算结果一定是布尔类型:true/false

逻辑运算符:& 逻辑与(并且)(两边的算子都是true,结果才是true)
| 逻辑或(或者)(两边的算子只要有一个是true,结果就是true)
! 逻辑非(取反,!false就是true,!true就是false,这是一个单目运算符)
^ 逻辑异或 (两边的算子只要不一样,结果就是true)
& & 短路与
| | 短路或

①逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型
②短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象
③短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象

逻辑与和短路与
int x = 10;
int y = 8;
System.out.println(x < y & ++x < y); 逻辑与
x;11

int x = 10;
int y = 8;
System.out.println(x < y & & ++x < y); 短路与
x; 10
x < y 结果是false,整个表达式结果已经确定是false
所以后面的表达式没有再执行,这种现象被称为短路现象
短路与才会有短路现象,逻辑与是不会存在短路现象的

从某个角度来看,短路与更智能,由于后面的表达式可能不执行,所以执行效率较高,这种方式在实际的开发中使用较多。
短路与比逻辑与使用的多。短路与更常用
但是,在某些特殊的业务逻辑当中,要求运算符两边的算子必须全部执行,此时必须使用逻辑与,不能使用短路与,使用短路与可能导致右边的表达式不执行

第一个表达式执行结果是true,会发生短路或
第一个表达式执行结果是false,会发生短路与

赋值运算符
包括:基本的赋值运算符:=
扩展的赋值运算符:+=、-=、*=、/=、%=

1、赋值类的运算符优先级:先执行等号右边的表达式,将执行结果赋值给左边的变量
2、注意以下代码:
byte i = 10;
i+ = 5; 等同于 i = (byte)(i + 5)

  int k = 10;
  k+ = 5; 等同于 k = (int)(k + 5)
  
  long x = 10L;
  int y = 20;
  y+ = x; 等同于 y = (int)(y + x)

3、重要结论
扩展类的赋值运算符不改变运算运算结果类型,假设最初这个变量的类型byte类型,无论怎么进行追加或追减,最终该变量的数据类型还是byte类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值