运算符
一,概述
- 运算:对常量和变量进行操作的过程就叫运算
- 运算符:对常量和变量进行操作时的符号就是运算符
二,运算符的分类:
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 三元运算符
1. 算术运算符
- 注意:
整数相除只能得到整数
如果我想要得到小数怎么办?就要把数据变成浮点数
/ 获取除法操作的是商 % 获取的是除法操作的余数
+ - * / %
// 定义变量
int a = 50;// 是把 50 赋值给了 int 类型的变量 a
int b = 6;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//0
//System.out.println((double)(b/a));//1
System.out.println(b*1.0/a);
System.out.println(a%b);// 拿的是余数
++ --
// 定义变量
int x = 3;
int y = 4;
System.out.println("x="+x+",y="+y);
int a = ++x;
int b = --y;
System.out.println("x="+x+",y="+y);
System.out.println("a="+a+",b="+b);
2. 赋值运算符
= += -= *= /= %=
=:基本的运算符,把 = 右边的数据赋值给左边的变量
其他都是扩展运算符,把 = 左边和右边做运算,然后把结果赋值给左边
3. 比较运算符(关系运算符)
==
!=
<
>
<=
>=
instanceof 判断是否是类的对象的
- 特点:不管我们的操作简单还是复杂,结果必是 boolean 类型
4. 逻辑运算符
& 与 and
| 或 or
^ 异或!非 not
&& and 与
|| or 或
- 逻辑运算符是用来连接 boolean 类型表达式或者值
举例:18<age<30 age>18 && age<30
- 表达式:就是用运算符把常量后者变量连接起来符号 java 语法规则的式子
算术表达式 i+j
比较表单时 i==j
结论:
&: 逻辑与:有假则假
|: 逻辑或:有真则真
^: 逻辑异或:相同为假,不同为真
!: 逻辑非:非真则假,非假则真, 偶数个本身不改变。
&&:逻辑双与:有假则假
||:逻辑双或:有真则真, 结论和单与 单或的结论一样
(& 和 && 的区别:
最终的结果是一样的
&& 具有短路效果,左边是 false 的时候,右边不再执行
单与:左边不管真假,右边都会执行
双与:左边为真,右边执行,左边为假,右边不执行了
同理 | 和 ||
单或:无论左边真假,右边都会执行
双或:左边为假,右边执行,左边为真,右边不执行了。开发常用 && ||)
5. 位运算符
<< 左移
>> 右移
>>> 无符号右移
& 位于运算符
| 位或运算符
^ 位异或运算符
~ 反码运算符
- 注意:位运算符是直接对二进制进行运算的符号
- 要做位运算,先要把数据转成二进制。
6. 三元运算符
- 格式:
关系(比较表达式)?表达式一:表达式二;
- 流程:
如果关系表达式的结果是真,最后计算的结果是表达式一
如果关系表达式的结果是假,最后计算的结果是表达式二
eg:
获取 3 个数中的最大值
public static void main(String[] args){
// 定义一个变量
int a = 55;
int b = 66;
int c = 88;
// 分 2 步:先比较 a 和 b,拿到较大的
// 再拿 a 和 b 中较大的和 c 比
int temp = a>b?a:b;
System.out.println(temp);
int max = temp>c?temp:c;
System.out.println(max);
// 一步搞定
//int max2 = a>b?a>c?a:c:b>c?b:c;
int max2 = (a>b)?((a>c)?a:c):((b>c)?b:c);
System.out.println(max2);
}