1.基础算术运算符(5个)
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
注意:整数除法除数为零报错,浮点除法除数为零无穷大。
整数类型 | 浮点类型 | 整数浮点 | |
加法 | 1+2=3 | 1.5+1.5=3.0 | 1+0.5=1.5 |
减法 | 3-2=1 | 2.0-2.0=0 | 2-0.5=1.5 |
乘法 | 1*2=2 | 1.5*1.0=1.5 | 2*1.5=3.0 |
除法 | 7/2=3 | 1.5/5.0=0.3 | 2/0.5=4.0 |
取余 | -5%2=-1 | -3.5%1.5=-0.5 | 4%0.4=0 |
2.赋值运算符
赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。并且赋值运算符可以自动完成变量的数据类型转换。
例如:int a=10; char b = '你'; b+=a;
Java支持的常用赋值运算符,如下表所示:
运算符 | 名称 | 举例 |
= | 赋值 | c=a+b将把a+b得到的值赋给c |
+= | 加等于 | c+=a等价于c=c+a |
-= | 减等于 | c-=a等价于c=c-a |
*= | 乘等于 | c*=a等价于c=c*a |
/= | 除等于 | c/=a等价于c=c/a |
%= | 取余等于 | c%=a等价于c=c%a |
3.关系运算符与关系表达式
< | 小于 |
> | 大于 |
!= | 不等于 |
== | 等于 |
<= | 不大于 |
>= | 不小于 |
! | 取反 |
关系运算符的运算结果是boolean(布尔)型,当运算符对应的关系成立时,结果是true(对),否则为false(错)。
因为算术运算符的级别高于关系运算符,10>20-17相当于10>(20-17),结果是true。
4.逻辑运算符与逻辑表达式
&& | 与 |
|| | 或 |
! | 非 |
其运算结果和关系运算符相同,为boolean(布尔)型。
表达式1 | 表达式2 | 表达式1&&表达式2 | 表达式1||表达式2 | !表达式1 |
True | True | True | True | False |
True | False | False | True | False |
False | True | False | True | True |
False | False | False | False | True |
逻辑的与&& 在其中一个为错的时候,都错。
逻辑的或|| 在其中一个为对的时候,都对。
A&&B 在A为错的时候,不会考虑B,B部分不会执行。
A||B 在A为对的时候,不用考虑B,B部分不会执行。
逻辑运算符的实战运用:
&&:
原代码:
if(数据1存在){
if(数据1是未占用的){
if(数据1的信息是正确的){
执行业务逻辑
}
}
}
可简化为:
if(数据1存在&&数据1是未占用的&&数据1的信息是正确的){
业务逻辑
}
||:
原代码:
if(条件1&& 条件2 &&条件3){
业务操作1
if(条件4 && 条件5 && 条件6){
业务操作2
if(条件7 && 条件5 && 条件6){
业务操作3
}
}
}
可简化为:
if(!条件1 || !条件2 || !条件3){break; 或者 return;}
业务操作1
if(!条件4 || !条件5 || !条件6){break; 或者 return;}
业务操作2
if(!条件7 || !条件8 || !条件9){break; 或者 return;}
业务操作3
逻辑运算符除了基础的逻辑判断外,还起到拆解复杂嵌套的作用,判断条件取反后独立与嵌套语句之外,筛选反向条件后退出当前代码,此操作称为卫语句。
5.三目运算符
其基本格式为:<表达式1> ? <表达式2> : <表达式3>
"?"运算符的含义是,先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
举例:
int a;
if(10>9){a=10;}
else{a=9;}
用三目运算符表示则可写成:
int a;
a=10>9?10:9;
6.位运算符
非 | ~A | 计算方式是按位取反,1为0,0为1 |
与 | A&B | 计算两个数据相同位置的值,值都为1时为1,否则为0 |
或 | A|B | 计算两个数据相同位置的值,值都为0时为0,否则为1 |
异或 | A^B | 计算两个数据相同位置的值,值相同时为0,不同为1 |
左移 | A<<n | 将存储区域所有位置向左移动n位,前n位舍弃,后n位补0 |
右移 | A>>n | 将数据区域向右移动n位,正数前n位补0负数前n位补1,后n位舍弃 |
7.运算符的优先级
①括号 > ②一元运算符 > ③算术运算符 > ④关系运算符 > ⑤二元逻辑运算符和位运算符 > ⑥三元算数运算符和赋值运算符
①:(),[]
②:++,--,正+,负-,!
③:*,/,%,+,-
④:>,>=,<,<=,==,!=
⑤:&,|,&&,||(备注:&&的优先级高于||)
⑥:?:,=,*=,/=,+=,-=