## 导语 分支选择:if实现复杂逻辑判断,switch优化等值匹配(新语法更安全简洁)。 循环控制:while需手动初始化与更新变量,严格遵循“先判断后执行”。 避坑指南: 引用类型比较必须用.equals() switch传统语法需防穿透(漏写break) while循环变量更新不可缺失 ## 一、Java语句的分类 1、分支结构语句; 2、循环结构语句; 3、控制流语句 ## 二、if语句 1、简单的if语句结构: ```java if(条件){ 结构体; } // 条件必须为boolean型 ``` 2、if-else语句结构: ```java if(条件){ 结构体; } else { 结构体; } ``` 3、if-else-if语句结构: ```java if(条件){ 结构体; } else if(条件){ 结构体; } else { 结构体 } ``` // else分支只能放在最后,else分支后不可加 else if 分支 4、嵌套if语句结构: ```java if(条件){ if(条件){ 结构体; } else { if(条件){ 结构体; } } ``` ## 三、数值的比较 1、基本数据类型秩序用 == 进行数值比较; 2、引用数据类型需用.equals()进行比较,例: ```java // 字符串比较 String str1 = "1"; String str2 = "2"; // ① str1.equals(str2); // false // ② import java.util.Objects; Objects.equals(str1,str2); // false ``` ## 四、多分支if与switch比较 1、多分支if多用于数值区间条件; 2、switch多用于等值条件。 ## 五、switch选择结构 // ①传统写法 ```java switch(表达式){ // 表达式和选择分支值必须用byte,short,int,char,String类型和数组枚举 case 值: 结构体; break; // 每个case块结尾尽量用break,避免发生穿透 case 值: 结构体; break; default: 结构体; break; } ``` // ②新写法 ```java switch(表达式){ case 值 -> {结构体;} case 值 -> {结构体;} default -> {结构体;} } ``` 两种写法的区别如下: | **特性** | 冒号语法(①) | 箭头语法(②) | | -------------- | ----------------- | -------------- | | **穿透行为** | ✅ 需`break`终止 | ❌ 自动隔离 | | **作用域** | 共享作用域 | 分支独立作用域 | | **代码简洁性** | 冗余`break` | 更简洁 | | **多值匹配** | `case A: case B:` | `case A, B ->` | | **支持表达式** | ❌ 语句 | ✅ 可返回值 | ## 六、while循环 1、语法结构 ```java int n = 0; // 定义循环变量并初始化 while(n<3){ 结构体; n++; // 循环变量变化 } ``` 2、特点 先判断后执行,当循环条件不成立时,循环不进行 ## 笔记、代码附件 [香肠狗网盘][1]https://pan.soki.me/s/G7F6 [1]: https://pan.soki.me/s/G7F6 Loading... ## 导语 分支选择:if实现复杂逻辑判断,switch优化等值匹配(新语法更安全简洁)。 循环控制:while需手动初始化与更新变量,严格遵循“先判断后执行”。 避坑指南: 引用类型比较必须用.equals() switch传统语法需防穿透(漏写break) while循环变量更新不可缺失 ## 一、Java语句的分类 1、分支结构语句; 2、循环结构语句; 3、控制流语句 ## 二、if语句 1、简单的if语句结构: ```java if(条件){ 结构体; } // 条件必须为boolean型 ``` 2、if-else语句结构: ```java if(条件){ 结构体; } else { 结构体; } ``` 3、if-else-if语句结构: ```java if(条件){ 结构体; } else if(条件){ 结构体; } else { 结构体 } ``` // else分支只能放在最后,else分支后不可加 else if 分支 4、嵌套if语句结构: ```java if(条件){ if(条件){ 结构体; } else { if(条件){ 结构体; } } ``` ## 三、数值的比较 1、基本数据类型秩序用<code> == </code>进行数值比较; 2、引用数据类型需用<code>.equals()</code>进行比较,例: ```java // 字符串比较 String str1 = "1"; String str2 = "2"; // ① str1.equals(str2); // false // ② import java.util.Objects; Objects.equals(str1,str2); // false ``` ## 四、多分支if与switch比较 1、多分支if多用于数值区间条件; 2、switch多用于等值条件。 ## 五、switch选择结构 // ①传统写法 ```java switch(表达式){ // 表达式和选择分支值必须用byte,short,int,char,String类型和数组枚举 case 值: 结构体; break; // 每个case块结尾尽量用break,避免发生穿透 case 值: 结构体; break; default: 结构体; break; } ``` // ②新写法 ```java switch(表达式){ case 值 -> {结构体;} case 值 -> {结构体;} default -> {结构体;} } ``` 两种写法的区别如下: | **特性** | 冒号语法(①) | 箭头语法(②) | | -------------- | ----------------- | -------------- | | **穿透行为** | ✅ 需`break`终止 | ❌ 自动隔离 | | **作用域** | 共享作用域 | 分支独立作用域 | | **代码简洁性** | 冗余`break` | 更简洁 | | **多值匹配** | `case A: case B:` | `case A, B ->` | | **支持表达式** | ❌ 语句 | ✅ 可返回值 | ## 六、while循环 1、语法结构 ```java int n = 0; // 定义循环变量并初始化 while(n<3){ 结构体; n++; // 循环变量变化 } ``` 2、特点 先判断后执行,当循环条件不成立时,循环不进行 ## 笔记、代码附件 [香肠狗网盘][1]https://pan.soki.me/s/G7F6 [1]: https://pan.soki.me/s/G7F6 最后修改:2025 年 10 月 13 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 👆请简单粗暴地爱我。