Просмотр исходного кода

docs: 追加Demo07三目运算符及Demo08运算符优先级到课堂笔记

- Demo07.java 新增三目运算符(布尔表达式?表达式1:表达式2)
- Demo08.java 新增运算符优先级(14级优先级表)
- 更新 20260714-笔记.md 新增三目运算符与运算符优先级章节
- 更新运算符分类表、完整代码汇总、随堂练习要点、拓展阅读
WanJL 14 часов назад
Родитель
Сommit
159f8c2cd8

+ 29 - 0
授课代码/c260714/src/Demo07.java

@@ -0,0 +1,29 @@
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo07
+ * @description 三目运算符 三元运算符
+ * @create 2026/7/14
+ */
+public class Demo07 {
+    public static void main(String[] args) {
+        /*
+            三目运算符
+            布尔表达式?表达式1:表达式2
+            布尔表达式的结果如果是true,就执行表达式1,否则执行表达式2
+         */
+        System.out.println(15>8?"hello":"哈哈哈哈");
+        System.out.println(15>8?6:"哈哈哈哈");
+        int x=10,y=6;
+        System.out.println(x>y?"x>y":"x<=y");
+        System.out.println(x>y?"x>y":y);
+
+        /*
+            什么时候使用三元运算符,什么时候使用if...else
+            如果是简单的二选一赋值----》三元运算符
+            复杂多个分支逻辑----》if...else
+            嵌套超过2层----》if...else
+            需要执行某段代码而不是返回一个值----》if...else
+         */
+    }
+}

+ 28 - 0
授课代码/c260714/src/Demo08.java

@@ -0,0 +1,28 @@
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo08
+ * @description 运算符优先级
+ * @create 2026/7/14
+ */
+public class Demo08 {
+    public static void main(String[] args) {
+        /*
+            运算符优先级决定了表达式中的计算顺序
+            最高优先级:() .  []
+            2   ++  --  +正数 -负数
+            3   *   /   %
+            4   +   -
+            5   <<  >>  >>>
+            6   <   >   <=  >=
+            7   ==  !=
+            8   &
+            9   ^
+            10  |
+            11  &&
+            12  ||
+            13  ?:  三元运算符
+            14  各种赋值 =  +=  -=
+         */
+    }
+}

+ 207 - 1
课堂笔记/01-JavaSE基础-笔记/20260714-笔记.md

@@ -125,7 +125,8 @@ public class Demo01 {
 | **比较运算符** | ✅ 本次课程重点 |
 | **逻辑运算符** | ✅ 本次课程重点 |
 | **位运算符** | ✅ 本次课程重点 |
-| 三目运算符 | 后续课程讲解 |
+| **三目运算符** | ✅ 本次课程重点 |
+| **运算符优先级** | ✅ 本次课程重点 |
 
 ---
 
@@ -684,6 +685,138 @@ public class Demo06 {
 }
 ```
 
+---
+
+### 7. 三目运算符(三元运算符)
+
+三目运算符是 Java 中唯一一个需要**三个操作数**的运算符。
+
+**语法格式:**
+
+```java
+布尔表达式 ? 表达式1 : 表达式2
+```
+
+**执行逻辑:**
+- 如果布尔表达式结果为 `true`,执行(返回)**表达式1**
+- 如果布尔表达式结果为 `false`,执行(返回)**表达式2**
+
+#### 示例
+
+```java
+System.out.println(15 > 8 ? "hello" : "哈哈哈哈");   // hello
+System.out.println(15 > 8 ? 6 : "哈哈哈哈");          // 6(返回 int)
+```
+
+```java
+int x = 10, y = 6;
+System.out.println(x > y ? "x>y" : "x<=y");  // x>y
+System.out.println(x > y ? "x>y" : y);       // x>y(返回 String)
+```
+
+#### 三目运算符 vs if-else 选择原则
+
+| 场景 | 推荐使用 |
+|------|---------|
+| 简单的二选一赋值 | 三目运算符 |
+| 复杂多个分支逻辑 | `if-else` |
+| 嵌套超过 2 层 | `if-else`(三目嵌套可读性差) |
+| 需要执行某段代码而不是返回一个值 | `if-else` |
+
+**完整代码 —— Demo07.java**
+
+```java
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo07
+ * @description 三目运算符 三元运算符
+ * @create 2026/7/14
+ */
+public class Demo07 {
+    public static void main(String[] args) {
+        /*
+            三目运算符
+            布尔表达式?表达式1:表达式2
+            布尔表达式的结果如果是true,就执行表达式1,否则执行表达式2
+         */
+        System.out.println(15 > 8 ? "hello" : "哈哈哈哈");
+        System.out.println(15 > 8 ? 6 : "哈哈哈哈");
+        int x = 10, y = 6;
+        System.out.println(x > y ? "x>y" : "x<=y");
+        System.out.println(x > y ? "x>y" : y);
+
+        /*
+            什么时候使用三元运算符,什么时候使用if...else
+            如果是简单的二选一赋值 → 三元运算符
+            复杂多个分支逻辑 → if...else
+            嵌套超过2层 → if...else
+            需要执行某段代码而不是返回一个值 → if...else
+         */
+    }
+}
+```
+
+---
+
+### 8. 运算符优先级
+
+运算符优先级决定了表达式中的计算顺序。优先级越高,越先被计算。
+
+| 优先级 | 运算符 | 说明 |
+|--------|--------|------|
+| 1(最高) | `()` `.` `[]` | 括号、成员访问、数组下标 |
+| 2 | `++` `--` `+`(正)`-`(负) | 自增、自减、正负号 |
+| 3 | `*` `/` `%` | 乘、除、取余 |
+| 4 | `+` `-` | 加、减 |
+| 5 | `<<` `>>` `>>>` | 移位运算 |
+| 6 | `<` `>` `<=` `>=` | 比较(instanceof) |
+| 7 | `==` `!=` | 等于、不等于 |
+| 8 | `&` | 按位与 |
+| 9 | `^` | 按位异或 |
+| 10 | `\|` | 按位或 |
+| 11 | `&&` | 短路与 |
+| 12 | `\|\|` | 短路或 |
+| 13 | `?:` | 三目运算符 |
+| 14(最低) | `=` `+=` `-=` `*=` `/=` `%=` | 赋值运算符 |
+
+> **记忆口诀**:括号最高,单目第二,乘除第三,加减第四,移位第五,比较第六,等于第七,位逻辑(`&` `^` `|`)第八到十,短路逻辑(`&&` `||`)十一十二,三目十三,赋值最后。
+>
+> **最佳实践**:当不确定优先级时,使用 `()` 明确指定计算顺序,提高代码可读性。
+
+**完整代码 —— Demo08.java**
+
+```java
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo08
+ * @description 运算符优先级
+ * @create 2026/7/14
+ */
+public class Demo08 {
+    public static void main(String[] args) {
+        /*
+            运算符优先级决定了表达式中的计算顺序
+            最高优先级:() .  []
+            2   ++  --  +正数 -负数
+            3   *   /   %
+            4   +   -
+            5   <<  >>  >>>
+            6   <   >   <=  >=
+            7   ==  !=
+            8   &
+            9   ^
+            10  |
+            11  &&
+            12  ||
+            13  ?:  三元运算符
+            14  各种赋值 =  +=  -=
+         */
+    }
+}
+```
+
 结合 if-else 分支结构与算术运算符,完成以下练习:
 
 ### 练习 1:判断奇偶数
@@ -1090,6 +1223,73 @@ public class Demo06 {
 }
 ```
 
+### Demo07.java — 三目运算符
+
+```java
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo07
+ * @description 三目运算符 三元运算符
+ * @create 2026/7/14
+ */
+public class Demo07 {
+    public static void main(String[] args) {
+        /*
+            三目运算符
+            布尔表达式?表达式1:表达式2
+            布尔表达式的结果如果是true,就执行表达式1,否则执行表达式2
+         */
+        System.out.println(15 > 8 ? "hello" : "哈哈哈哈");
+        System.out.println(15 > 8 ? 6 : "哈哈哈哈");
+        int x = 10, y = 6;
+        System.out.println(x > y ? "x>y" : "x<=y");
+        System.out.println(x > y ? "x>y" : y);
+
+        /*
+            什么时候使用三元运算符,什么时候使用if...else
+            如果是简单的二选一赋值 → 三元运算符
+            复杂多个分支逻辑 → if...else
+            嵌套超过2层 → if...else
+            需要执行某段代码而不是返回一个值 → if...else
+         */
+    }
+}
+```
+
+### Demo08.java — 运算符优先级
+
+```java
+/**
+ * @author WanJl
+ * @version 1.0
+ * @title Demo08
+ * @description 运算符优先级
+ * @create 2026/7/14
+ */
+public class Demo08 {
+    public static void main(String[] args) {
+        /*
+            运算符优先级决定了表达式中的计算顺序
+            最高优先级:() .  []
+            2   ++  --  +正数 -负数
+            3   *   /   %
+            4   +   -
+            5   <<  >>  >>>
+            6   <   >   <=  >=
+            7   ==  !=
+            8   &
+            9   ^
+            10  |
+            11  &&
+            12  ||
+            13  ?:  三元运算符
+            14  各种赋值 =  +=  -=
+         */
+    }
+}
+```
+
 ---
 
 ## 五、随堂练习要点
@@ -1120,6 +1320,9 @@ public class Demo06 {
 24. **无符号右移 `>>>`**:低位丢失,高位补 0,负数会变为大正数
 25. **成绩等级练习**:综合运用 `if-else if-else` + 比较运算符 + 逻辑运算符 `&&` 实现多范围判断
 26. **位运算随堂练习**:计算 `15>>3`、`66<<2`、`75&86`、`63|36`、`-128>>>3` 的运行结果
+27. **三目运算符**:`布尔表达式 ? 表达式1 : 表达式2`,简化二选一赋值
+28. **三目 vs if-else**:简单二选一赋值用三目,复杂多分支用 `if-else`
+29. **运算符优先级**:牢记 `()` 最高、赋值最低,不确定时用 `()` 明确顺序
 
 ---
 
@@ -1137,3 +1340,6 @@ public class Demo06 {
 | **补码** | 计算机使用补码表示负数,正数的补码 = 原码,负数的补码 = 原码取反 + 1 |
 | **按位与 `&` vs 逻辑与 `&`** | 按位与操作整型的二进制位,逻辑与操作布尔值 |
 | **位运算性能** | 位运算直接操作二进制位,比算术运算性能更高,常用于底层编程 |
+| **三目运算符** | 唯一的三元运算符,格式 `? :`,适合简单的二选一赋值 |
+| **运算符优先级** | 优先级高的运算符先执行,建议用 `()` 明确计算顺序 |
+| **短路逻辑 vs 非短路逻辑** | `&&`/`||` 有短路效果,`&`/`|` 无短路效果,性能上短路更优 |