运算符
1. 算术运算符
1.1 运算符和表达式
运算符:对常量或者变量进行操作的符号。
表达式:用运算符把常量或者变量连接起来符合Java语法的式子,不同运算符连接的表达式体现的是不同类型的表达式。
1.2 算术运算符
符号 |
作用 |
说明 |
+ |
加 |
相加 |
- |
减 |
相减 |
* |
乘 |
相乘,与“x”相同 |
/ |
除 |
相除,与“÷”相同 |
% |
取余 |
获取的两个数据做除法的余数 |
注意事项:
/和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
1.3 字符的“+”操作
拿字符在计算机底层对应的数值来进行计算的。
算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
(1)byte类型,short类型和char类型将被提升到int类型。
(2)整个表达式的类型自动提升到表达式中最高等级操作数同样的类型。
等级顺序:byte、short、char—>int—>long—>float—>double
1.4 字符串的“+”操作
当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是运算符。
在“+”操作中,如果出现了字符串,就是链接运算符,否则就是算数运算,当连续进行“+”操作时,从左到右逐个执行。
2. 赋值运算符
2.1 赋值运算符
符号 |
作用 |
说明 |
= |
赋值 |
a=10,将10赋值给变量a |
+= |
加后赋值 |
a+=b,将a+b的值给a |
-= |
减后赋值 |
a-=b,将a-b的值给a |
*= |
乘后赋值 |
a*=b,将a×b的值给a |
/= |
除后赋值 |
a/=b,将a÷b的值给a |
%= |
取余后赋值 |
a%=b,将a÷b的余数给a |
注意事项:
扩展的运算符隐含了强制类型转换。
3. 自增自减运算符
3.1 自增自减运算符
符号 |
作用 |
说明 |
++ |
自增 |
变量的值加1 |
-- |
自减 |
变量的值-1 |
注意事项:
(1)++和--既可以放在变量的后边,也可以放在变量的前边。
(2)单独使用的时候,++和--无论是放在变量的前边还是后边,结果是一样的。
(3)参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--;参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
4. 关系运算符
4.1 关系运算符
符号 |
说明 |
== |
a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= |
a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> |
a>b,判断a是否大于b,成立为true,不成立为false |
>= |
a>=b,判断a是否大于等于b,成立为true,不成立为false |
< |
a<b,判断a是否小于b,成立为true,不成立为false |
<= |
a<=b,判断a是否小于等于b,成立为true,不成立为false |
注意事项:
(1)关系运算符的结果都是boolean类型,要不是true,要么是false。
(2)不要把“==”写成“=”。
5. 逻辑运算符
5.1 逻辑运算符概述
逻辑运算符,是用来连接关系表达式的运算符,逻辑运算符可以直接连接布尔类型的常量或者变量。
5.2 逻辑运算符
符号 |
作用 |
说明 |
& |
逻辑与 |
a&b,a和b都是true,结果为true,否则为false |
| |
逻辑或 |
a|b,a和b都是false,结果为true,否则为false |
^ |
逻辑异或 |
a^b,a和b结果不同为true,相同为false |
! |
逻辑非 |
!b,结果和a的结果正好相反 |
5.3 短路逻辑运算符
符号 |
作用 |
说明 |
&& |
短路与 |
作用和&相同,但是有短路效果 |
|| |
短路或 |
作用和|相同,但是有短路效果 |
注意事项:
(1)逻辑与&,无论左边真假,右边都要执行;短路与&&,如果左边为真,右边执行,如果左边为假,右边不执行。
(2)逻辑或|,无论左边真假,右边都要执行;短路或||,如果左边为假,右边执行,如果左边为真,右边不执行。
6. 三元运算符
6.1 三元运算符
格式:关系表达式?表达式1:表达式2;
范例:a>b?a:b;
计算规则:
首先计算关系表达式的值,如果值为true,表达式1的值就是运算结果;如果值为false,表达式2的值就是运算结果。