运算符
一、算术运算符
【运算符】:对常量或者变量进行操作的符号
【表达式】:用运算符把常量或变量连接起来符合JAVA语法的式子
不同运算符连接的表达式体现的是不同类型的表达式
eg: int c = a+b;
+:算术运算符
a+b:算术表达式
1 算术运算符
符号 | 作用 | 注 |
+ | 加 | |
- | 减 | |
* | 乘 | |
/ | 除 | 两个数据做除法的商 |
% | 取余 | 两个数据做除法的余 |
整数操作只能得到整数
得到小数要有浮点数参与运算
2 字符的“+”操作
是用字符在计算机底层对应的数值来进行计算的
算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升
提升规则:byte类型、short类型、char类型被提升到int类型
等级顺序:byte\short\char->int->long->float->double
3 字符串的“+”操作
1 当“+”操作中出现字符串时,“+”是字符串连接符,而不是算术运算
eg:“guagua”+666 => guagua666
2 在“+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算
当连续进行“+”操作时,从左到右逐个执行
eg:1+99+“年呱呱” => 先1+99=100,再+“年呱呱” => 100年呱呱
二、赋值运算符
符号 | 作用 | eg |
= | 赋值 | a=10,将10赋值给a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | |
*= | 乘后赋值 | |
/= | 除后赋值 | |
%= | 取余后赋值 |
注:扩展的赋值运算符隐含了强制类型转换
三、自增自减运算符
符号 | 作用 |
++ | 自增 |
- - | 自减 |
单独使用时,i++ = ++i ,++和--无论放在变量前还是变量后,结果是一样的
参与操作使用时,int j = i++; i = 10 先把 i=10 的值赋值给j,i再做自增
如放在变量的后边,先拿变量参与操作,后变量自增/自减
如放在变量的前边,先变量自增/自减,后拿变量参与操作
四、关系运算符
符号 | 说明 |
== | 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 |
关系运算符的结果都是boolean类型
五·一、逻辑运算符
用来连接关系表达式的运算符,也可以直接连接布尔类型的常量或变量
符号 | 作用 |
& | 逻辑与 |
| | 逻辑或 |
^ | 逻辑异或 |
! | 逻辑非 |
五·二、短路逻辑运算符
符号 | 作用 |
&& | 短路与=基本逻辑与 |
|| | 短路或=基本逻辑或 |
注:逻辑与&,无论左边真假,右边都要执行
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行
逻辑或|,无论左边真假,右边都要执行
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行
六、三元运算符
格式:关系表达式?表达式1:表达式2
eg:a>b?a:b (获取两个数据中的较大值)
运算规则:先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
六·二、两只老虎案例
需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg
用程序实现判断两只老虎的体重是否相同
程序:
public class Operator Test 01{
public static void main(String[] args){
//1:定义两个变量用于保存老虎的体重,单位为kg
int weight1=180;
int weight2=200;
//2:用三元运算符实现老虎体重的判断,体重相同,返回true;否则返回false
boolean b = weight1==weight2 ? true:false;
//3:输出结果
System.out.println("b:"+b);
}
}