目录:
1. 概念
2. 算数运算符
3. 赋值运算符
4. 比较运算符
5. 逻辑运算符
6. 三元运算符
概念
运算符:进行特定操作的符号如:+ - * /
表达式:用运算符连起来的式子叫表达式
在Java中分为:算数运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符
算数运算符
基础用法
public static void main(String[] args) {
// 常量之间可以进行属性运算
System.out.println(20 + 30);
// 变量之间也可以进行数学之间运算
int a = 20;
int b = 30;
System.out.println(a + b);
// 变量和常量可以混合使用
System.out.println(a * 10);
// 除法
// 1 都是整数,结果也是整数,只看商,不可余数
int x = 10;
int y = 3;
System.out.println(x / y); // 3
// 取模 (取余数)只有对应整数的除法取模才有意义
int result2 = x % y;
System.out.println(result2); // 1
// 运算如果有不同数据类型,结果为范围大的数据类型,先提升数据类型,再运算
double result = x / y;
System.out.println(result); // 3.0
}
+ 的三种用法
public static void main(String[] args) {
// 用法1:对于数值来说,就是+法
int x = 30;
int y = 40;
int result = x + y;
System.out.println(result);
// 用法2:对于字符char类型来说,char会被提示成为int。然后再计算
char c = 'A';
int result2 = c + 1;
System.out.println(result2);
// 用法3:对应字符串String(),+ 代表字符串连接操作
String s1 = "Hello ";
String s2 = "Word";
String result3 = s1 + s2;
System.out.println(result3);
// 任何数据类型和字符串相加,结果都是字符串
int z = 300;
String s3 = "个";
System.out.println(z + s3);
// 优先级
String s4 = s3 + z + x;
System.out.println(s4);
// 改变优先级
System.out.println(s3 + (x + y));
}
自增自减运算符 ++、--
含义:让一个变量+1或者-1
格式:++变量名,变量名++
public static void main(String[] args) {
// 单独使用
int a = 100;
a++; // 后++
System.out.println(a); // 101
++a; // 前++
System.out.println(a); // 102
// 混合使用
// 1 如果是前++,变量先计算,再使用
int num1 = 100;
int num2 = 100;
num1 = num1 + ++num2;
System.out.println(num1); // 201
System.out.println(num2); // 101
// 2 如果是后++,变量先使用,再计算
int b = 100;
int z = 100;
b = b + z++;
System.out.println(b); // 200
System.out.println(z); // 101
}
算数运算符注意:
1. 常量和变量都可以进行数学之间运算
2. 常量不能使用自增自减运算符,因为常量本身是不可变的
2. Java中整数在使用赋值运算符运算的时候,不会得到小数
赋值运算符
基本赋值运算符(=)
含义:将符号右边的量,赋值给左边的变量
符号赋值运算符
public static void main(String[] args) {
// =
int a = 100; // 将右侧的100交给左侧的a存储
// += 相当于b = b + b;
int b = 100;
b += b;
System.out.println(b); // 200
// -=
int num1 = 100;
num1 -= 100;
System.out.println(num1); // 0
// /=
int num2 = 10;
num2 /= 3;
System.out.println(num2); // 3
// %=
int num3 =10;
num3 %= 3;
System.out.println(num3); // 1
// 符号运算符包含了强制类型转换
byte num4 = 30;
num4 += 5;
System.out.println(num4); // 35
}
赋值运算符注意:
1. 常量不能用于赋值,不能写在赋值运算符的左边
2. 复合赋值运算符隐含了强制类型转换
int num4 = 30; num4 += 5; // 会发生如下转换 num4 = byte + int; num4 = int + int; num4 = (byte)int;
比较运算符
public static void main(String[] args) {
// 常量比较
System.out.println(1< 2);
// 变量比较
int a = 10;
int b = 20;
System.out.println(a < b);
// >= 大于或者=都为true
System.out.println(a > 11); // false
System.out.println(a >= 10); // true
// == 等于
System.out.println(a == b); // false
// != 不等于
System.out.println(a != b); // true
}
赋值运算符注意
1. 结果一定是boolen值
2. 不能连续多次判断比如 10 < a < 20(错误写法),需要使用逻辑运算符
逻辑运算符
&& | || | ! |
与(并且) | 或(或者) | 非(取反) |
全是true才是true | 有一个true为true, 全是false为false | 如果true取反为false |
public static void main(String[] args) {
int a = 10 ;
int b = 20;
int c = 30;
// && 与
boolean flag = a > b && b > c;
System.out.println(flag);
// || 或
boolean flag1 = a > b || b > c;
System.out.println(flag1);
// ! 非
boolean flag2 = !(a > b || b > c);
System.out.println(flag2);
// 逻辑短路
System.out.println(a > b && ++a >b);
System.out.println(a); //a = 10,并没有执行 && 后面的代码
}
逻辑运算符注意
1. 一定是boolean值
2. && 、|| 具有短路的效果
3. && 、|| 左右两边都要有boolean值,!只需要有一个boolean值
4. 可以写多个条件
逻辑短路:如果左边的代码已经可以判断得到最终结果,那么右边的代码将不再执行
三元运算符
一元运算符: 只需要一个数据就可以进行操作的运算符,如:取反!、自增++、自减--
二元运算符: 需要两个运算符才能进行操作的运算符,如:加法+、赋值=
三元运算符:需要三个数据才能进行操作的运算符
三元运算符格式:数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
流程:
public static void main(String[] args) {
int a = 10;
int b = 20;
int result = a > b ? a : b;
System.out.println(result); // 20
}
三元运算符注意
1. 必须保证右侧的表达式A和表达式B都符合左侧的数据类型
2. 三元运算符结果必须被使用
// 错误示范
double d = 2.5;
int result2 = a > b ? a : d; // 类型不匹配
a > b ? a : d; // 未使用