目录
第一章:概述
第二章:算术运算符
2.1 概述
2.2 应用示例
2.3 + 号的两种用法
2.4 自增自减运算
2.4.1 概述
2.4.2 单独使用
2.4.3 复合使用
第三章:赋值运算符
3.1 概述
3.2 应用示例
第四章:关系运算符(比较运算符)
4.1 概述
4.2 应用示例
第五章:逻辑运算符
5.1 概述
5.2 应用示例
5.3 && 和 & 区别,|| 和 |区别
第六章:条件运算符(三元运算符)
6.1 概述
6.2 应用示例
第七章:运算符的优先级(了解)
第一章:概述
- 表达式:用运算符连接起来的式子。
- 运算符的分类:
-
- 按照功能分为:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符……
分类 | 运算符 |
算术运算符 |
|
赋值运算符 |
|
关系运算符 |
|
逻辑运算符 |
|
条件运算符 |
|
位运算符(了解) |
|
- 按照操作数个数分为:一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符(三目运算符)
-
- 一元运算符:操作数只有一个
-
-
- 例如:
-
-
-
-
- 正号(+):+a
-
-
-
-
-
- 负号(-):-a
-
-
-
-
-
- 自增(++):++i
-
-
-
-
-
- 逻辑非:!true
-
-
-
- 二元运算符:操作数有两个
-
-
- 例如:
-
-
-
-
- 加法:a + b
-
-
-
-
-
- 大于:a > b
-
-
-
-
-
- 逻辑与:a && b
-
-
-
- 三元运算符:条件 ? 结果1 :结果2。
第二章:算术运算符
2.1 概述
算术运算符 | 符号解释 |
| 加法运算,字符串连接运算,正号 |
| 减法运算,负号 |
| 乘法运算 |
| 除法运算,整数/整数结果还是整数 |
| 求余运算,余数的符号只看被除数 |
| 自增自减运算 |
2.2 应用示例
- 示例:
/** * @author GUO * @version 1.0 * @since 2022-11-16 */ public class ArithmeticOperator { public static void main(String[] args) { // 正号:+ int operator01 = +5; System.out.println("operator01 = " + operator01); // 5 // 负号:- int operator02 = -5; System.out.println("operator02 = " + operator02); // -5 // 负负得正 int operator03 = -3; System.out.println("operator03 = " + -operator03); // 3 // 加法: + int operatorAdd01 = 1; int operatorAdd02 = 2; int addResult = operatorAdd01 + operatorAdd02; System.out.println("addResult = " + addResult);// 3 double operatorAdd03 = 10.2; double operatorAdd04 = 3.8; double addResultDouble = operatorAdd03 + operatorAdd04; System.out.println("addResultDouble = " + addResultDouble); // 14.0 // 减法:- int operatorMinus01 = 1; int operatorMinus02 = 2; int minusResult = operatorMinus01 - operatorMinus02; System.out.println("minusResult = " + minusResult); // -1 // 乘法:* int operatorMulti01 = 1; int operatorMulti02 = 2; int multiResult = operatorMulti01 * operatorMulti02; System.out.println("multiResult = " + multiResult); // 2 // 除法:/ ,注意:除数不能为0 int operatorDivision01 = 6; int operatorDivision02 = 3; int divisionResult = operatorDivision01 / operatorDivision02; System.out.println("divisionResult = " + divisionResult); // 2 int operatorDivision03 = 6; int operatorDivision04 = 4; int divisionResult2 = operatorDivision03 / operatorDivision04; System.out.println("divisionResult2 = " + divisionResult2); // 1 // 取模:% int mod = operatorDivision03 % operatorDivision04; System.out.println("mod = " + mod); // 2 } }
2.3 +
号的两种用法
- ①对于
+
号两边都是数值的情况,+
就是加法的意思。
- ②对于
+
号两边至少一边是字符串的情况,+
就是拼接的意思。
- 示例:
/** * 加号的用法 * <p> * 第一种:对于`+`两边都是数值的话,`+`就是加法的意思 * <p> * 第二种:对于`+`两边至少有一边是字符串得话,`+`就是拼接的意思 * * @author GUO * @version 1.0 * @since 2022-11-16 */ public class PlusDemo { public static void main(String[] args) { String str = "Hello"; System.out.println("str = " + str); // Hello System.out.println(str + "World"); // HelloWorld String str2 = "Java"; System.out.println(str2 + 520); // Java520 System.out.println(str2 + 5 + 20); // Java520 } }
2.4 自增自减运算
2.4.1 概述
++
运算,变量自身+1
;反之,--
运算,变量自身-1
。
2.4.2 单独使用
- 变量在单独运算的使用,变量
前++
和变量后++
,变量的值是一样的。
- 变量
前++
:例如++a
。
- 变量
后++
:例如a++
。
- 示例:
/** * 自增和自减 * * @author GUO * @version 1.0 * @since 2022-11-16 */ public class IncreaseAndDecrease { public static void main(String[] args) { int a = 3; a++; System.out.println("a = " + a); // a = 4 int b = 3; ++b; System.out.println("b = " + b); // b = 4 } }
2.4.3 复合使用
- 和
其他变量放在一起使用
或者和输出语句在一起使用
,前++
和后++
就产生了不同。
- 变量
前++
:变量先自身加 1 ,然后再取值。
- 变量
后++
:变量先取值,然后再自身加 1 。
总结:
- ++在前,先自增,后使用。
- ++在后,先使用,后自增。
- 示例:
/** * 自增和自减 * * @author GUO * @version 1.0 * @since 2022-11-16 */ public class IncreaseAndDecrease2 { public static void main(String[] args) { int x = 3; int y = x++; System.out.println("x = " + x); // x = 4 System.out.println("y = " + y); // y = 3 int z = 5; System.out.println("z++ = " + z++); // z++ = 5 System.out.println("z = " + z); // z = 6 int a = 1; a = a++; System.out.println("a = " + a); // a = 1 } }
第三章:赋值运算符
3.1 概述
赋值运算符 | 符号解释 |
| 将符号右边的值,赋值给左边的变量 |
| 将符号 和 进行相加操作,最后将结果 |
| 将符号 和 进行相减操作,最后将结果 |
| 将符号 和 进行相乘操作,最后将结果 |
| 将符号 和 进行相除操作,最后将结果 |
| 将符号 和 进行取余操作,最后将结果 |
注意:
所有的赋值运算符的左边一定是一个变量
。
扩展赋值运算符将最后的结果赋值给左边的变量前,都做了强制类型转换
。
3.2 应用示例
- 示例:
/** * 赋值运算符 * * @author GUO * @version 1.0 * @since 2022-11-16 */ public class AssignmentOperator { public static void main(String[] args) { int a = 3; int b = 4; a = a + b; System.out.println("a = " + a); // 7 System.out.println("b = " + b); // 4 } }
- 示例:
/** * 扩展赋值运算符 * * @author GUO * @version 1.0 * @since 2022-11-16 */ public class AssignmentOperator2 { public static void main(String[] args) { int a = 3; int b = 4; b += a; // 相当于 b = b + a; System.out.println("a = " + a); // a = 3 System.out.println("b = " + b); // b = 7 short s = 3; // s = s + 4; 代码编译错误,因为将int类型的结果赋值给short类型的变量s,可能损失精度 s += 4; // 代码没有报错,因为在得到int类型的结果后,JVM自动完成一步强制类型转换,将int类型转换成short System.out.println("s = " + s); // s = 7 int j = 1; j += ++j * j++; // 相当于 j = j + (++j * j++); System.out.println(j); // 5 } }
第四章:关系运算符(比较运算符)
4.1 概述
关系运算符 | 符号解释 |
| 比较符号左边的数据是否小于右边的数据,如果小于结果是true。 |
| 比较符号左边的数据是否大于右边的数据,如果大于结果是true。 |
| 比较符号左边的数据是否小于或者等于右边的数据,如果大于结果是false。 |
| 比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是false。 |
| 比较符号两边数据是否相等,相等结果是true。 |
| 不等于符号 ,如果符号两边的数据不相等,结果是true。 |
注意:
- 比较运算符,是两个数据之间进行比较的运算,运算结果一定是 boolean 值
true
或false
。
>
、<
、>=
、<=
不支持 boolean 和 String 类型。
==
和!=
支持 boolean 和 String 类型。
4.2 应用示例
- 示例:
/** * 关系运算符 * * @author GUO * @version 1.0 * @since 2022-11-16 */ public class RelationOperator { public static void main(String[] args) { int a = 3; int b = 4; System.out.println(a < b); // true System.out.println(a > b); // false System.out.println(a <= b); // true System.out.println(a >= b); // false System.out.println(a == b); // false System.out.println(a != b); // true } }
第五章:逻辑运算符
5.1 概述
- 逻辑运算符,是用来连接两个
boolean
类型结果的运算符(!
除外),运算结果一定是boolean
类型值true
或false
。
逻辑运算符,是用来连接两个boolean
类型结果的运算符(!
除外),运算结果一定是boolean
类型值true
或false
。
逻辑运算符 | 符号解释 | 符号特点 |
| 与,且 | 有 |
| 或 | 有 |
| 异或 | 相同为 |
| 非 | 非 非 |
| 双与,短路与 | 左边为 false ,则右边就不看 |
| 双或,短路或 | 左边为 true ,则右边就不看 |
5.2 应用示例
- 示例:
/** * 逻辑运算符 * * @author GUO * @version 1.0 * @since 2022-11-16 */ public class LogicOperator { public static void main(String[] args) { int a = 3; int b = 4; int c = 5; // & 与,且;有false则false System.out.println((a > b) && (a > c)); // false System.out.println((a < b) && (a < c)); // true System.out.println((a < b) && (a > c)); // false System.out.println((a > b) && (a < c)); // false System.out.println("==============="); // | 或;有true则true System.out.println((a > b) | (a > c)); // false System.out.println((a > b) | (a < c)); // true System.out.println((a < b) | (a > c)); // true System.out.println((a < b) | (a < c)); // true System.out.println("==============="); // ^ 异或;相同为false,不同为true System.out.println((a > b) ^ (a > c)); // false System.out.println((a > b) ^ (a < c)); // true System.out.println((a < b) ^ (a > c)); // true System.out.println((a < b) ^ (a < c)); // false System.out.println("==============="); // ! 非:非false则true,非true则false System.out.println(!false); // true System.out.println(!true); // false } }
5.3 &&
和 &
区别,||
和 |
区别
**&&**
和**&**
区别:&&
和&
结果一样,&&
有短路效果,左边为 false ,右边不执行;&
左边无论是什么,右边都会执行。
**||**
和**|**
区别:||
和|
结果一样,||
有短路效果,左边为 true ,右边不执行;|
左边无论是什么,右边都会执行。
第六章:条件运算符(三元运算符)
6.1 概述
- 语法:
条件表达式 ?结果1:结果2
- 条件表达式的结果是 true ,条件运算符整体结果为结果 1 ,赋值给变量。
- 条件表达式的结果是 false ,条件运算符整体结果为结果 2 ,赋值给变量。
6.2 应用示例
- 示例:
/** * 三元运算符 * * @author GUO * @version 1.0 * @since 2022-11-16 */ public class ConditionOperator { public static void main(String[] args) { int i = (1 == 2) ? 100 : 200; System.out.println("i = " + i); // i = 200 int j = (3 <= 4) ? 500 : 600; System.out.println("j = " + j); // j = 500 } }
第七章:运算符的优先级(了解)
注意:
- 表达式不要太复杂。
- 先算的使用
()
,提升优先级。
- 大体的排序:算术->位-->比较-->逻辑-->三元-->赋值。