一、算数运算符
| 算数运算符 | |
|---|---|
+ |
加法运算,字符串连接运算 |
- |
减法运算 |
* |
乘法运算 |
/ |
除法运算 |
% |
取模运算,两个数字相除取余数 |
++、-- |
自增自减运算 |
Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。
public static void main(String[] args){
int i = 1234;
System.out.println(i / 1000 * 1000); // 1000
}
1、四则运算、取模
public class Demo01Operator{
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);
int x = 10;
int y = 3;
int res1 = x / y;
System.out.println(res1);
// 只有对于整数来说,取模运算才有余数的意义
int res2 = x % y;
System.out.println(res2);
}
}
2、加号运算
有关的三种用法:
- 对数值来说,就是加法运算;
- 对字符char类型来说,再计算之前,char会被提升为int,然后再计算
- 对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作
3、自增运算符(++)、自减运算符(–)
基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1
使用格式:写在变量名称之前或者变量名称之后;例如:++num,num++
使用方式:
- 单独使用:不和其他操作混合,自己独立成为一个步骤
- 混合使用:和其他操作混合使用,例如与赋值混合或者打印操作混合等
使用区别:
在单独使用的时候;n++ 和 ++n 没有任何区别;
混合使用的时候,有【重大区别】
A. 如果是【前++】,那么变量【马上+1】,然后拿着结果进行使用, 先加后用
B.如果是【后++】,那么首先使用原来的值进行使用,然后再将变量+1, 先用后加
public class Demo02Operator{
public static void main(String[] args){
int num1 = 10;
System.out.println(num1);
// 单独使用, 前++
++num1;
System.out.println(num1);
// 单独使用,后++
num1++;
System.out.println(num1);
System.out.println("============");
// 与打印操作混合使用
int num2 = 20;
System.out.println(++num2); // 混合使用,前++,变量立刻变成21,再打印
System.out.println(num2); // 21
System.out.println("============");
int num3 = 30;
System.out.println(num3++);// 混合使用,后++,首先使用变量本来的值进行操作(打印30),然后变量+1得到31
System.out.println(num3);// 31
System.out.println("============");
int num4 = 40;
int res1 = --num4;
System.out.println(res1); // 39
System.out.println(num4); // 39
System.out.println("============");
int num5 = 50;
int res2 = num5--;
System.out.println(res2);// 50
System.out.println(num5); // 49
System.out.println("============");
int x = 10;
int y = 20;
int res3 = ++x + y--;
System.out.println(res3); // 31
System.out.println(x); // 11
System.out.println(y); // 19
}
}
4、注意事项
- 一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
- 任何数据类型和字符串进行连接的时候,结果都会变成字符串
- 只有变量才有自增自减运算操作
二、赋值运算符
| 赋值运算符 | |
|---|---|
= |
等于号 |
+= |
加等于 |
-= |
减等于 |
*= |
乘等于 |
/= |
除等于 |
%= |
取模等 |
1、定义
赋值运算符,就是将符号右边的值,赋值给左边的变量。
public static void main(String[] args){
int i = 5;
i += 5; // 计算方式: i = i + 5;
System.out.println(i);
}
三、比较运算符
| 比较运算符 | |
|---|---|
== |
比较符号两边数据是否相等,相等结果为true |
< |
比较符号左边的数据是否小于右边的数据,如果小于结果为true |
> |
比较符号左边的数据是否大于右边的数据,如果大于结果为true |
<= |
比较符号左边的数据是否小于或等于右边的数据,如果是结果为true |
>= |
比较符号左边的数据是否大于或等于右边的数据,如果是结果为true |
!= |
不等于符号,如果符号两边的数据不相等,结果为true |
1、定义
比较运算符,是两个数据之间进行比较的运算,运算的结果都是布尔值true或者false。
public static void main(String[] args){
System.out.println(1 == 1); // true
System.out.println(1 < 2); // true
System.out.println(1 > 2); // false
System.out.println(1 <= 2); // true
System.out.println(1 >= 2); // false
System.out.println(1 != 2); // true
}
2、注意事项
- 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
- 如果进行多次判断,不能连着写,例如: 1 < x < 3;错误的
四、逻辑运算符
1、定义
| 逻辑运算符 | |
|---|---|
&& 短路与 |
1、两边都是true,结果为true 2、一边为false, 结果为false 短路特点:符号左边是false,右边不再运算 |
| ` | |
!取反 |
1、!true 结果为false 2、!false 结果为true |
逻辑运算符:是用来连接两个布尔类型结果的运算符,运算结果都是布尔值true或者false。
public static void main(String[] args){
/*
与(并且) &&
或(或者) ||
非(取反) |
与“&&” , 或“||” 具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码
将不再执行,从而节省一定的性能
*/
System.out.println(true && false);// false
System.out.println(3 > 4 && 1 == 2);// false
System.out.println("=============");
System.out.println(true || false); // true
System.out.println(3 <= 5 || 1 > 2);// true
System.out.println("=============");
//短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码
int a = 10;
// false && ..., 根据左边已经能够判断出结果,所以不需要执行右边的代码
System.out.println(3 > 4 && ++a < 100); // false
System.out.println(a); // 10
System.out.println("=============");
int b = 20;
// true || ...
System.out.println(3 < 4 || ++b < 100);// true
System.out.println(b);// 20
}
2、注意事项
- 逻辑运算符只能用于boolean值
- 与、或需要左右各一个boolean值,但是取反只有一个boolean值即可
- 与、或两种运算符,如果有多个条件,可以连续写
- 两个条件:A && B
- 多个条件:A && B && C
五、三元运算符
1、三元运算符格式
数据类型 变量名 = 布尔类型表达式? 结果1: 结果2
2、三元运算符计算方式
- 布尔类型表达式结果为true,三元运算符整体结果为结果1,赋值给变量
- 布尔类型表达式结果为false,三元运算符整体结果为结果2,赋值给变量
public static void main(String[] args){
int a = 10;
int b = 20;
int max = a > b? a: b;
System.out.println("最大值为: " + max);
}
3、注意实现
- 必须同时保证表达式A 和表达式B都符合左侧数据类型的要求
- 三元运算符的结果必须被使用