Java基础篇
# **十一、流程控制**
#### **1. 分支结构**
##### **1.1 if-else 分支结构**
- **基本语法**
```java
if (条件表达式) {
// 条件为真时执行的代码块
} else {
// 条件为假时执行的代码块
}
```
- **特点:用于二选一的逻辑判断。**
##### **1.2 switch-case 分支结构**
- **基本语法**
```java
switch (变量) {
case 值1:
// 当变量等于值1时执行的代码块
break;
case 值2:
// 当变量等于值2时执行的代码块
break;
default:
// 当变量不等于任何case值时执行的代码块
}
```
- **特点:适用于多分支选择,提高代码可读性。**
- **注意事项:每个 `case` 后面通常需要 `break` 防止“贯穿”到下一个 `case`。**
#### **2. 循环结构**
##### **2.1 for 循环**
- **基本语法**
```java
for (初始化; 条件表达式; 更新表达式) {
// 循环体
}
```
- **特点:适用于已知循环次数的情况。**
##### **2.2 while 循环**
- **基本语法**
```java
while (条件表达式) {
// 循环体
}
```
- **特点:先判断条件再执行循环体,适合未知循环次数但有明确结束条件的情况。**
##### **2.3 do-while 循环**
- **基本语法**
```java
do {
// 循环体
} while (条件表达式);
```
- **特点:至少执行一次循环体,然后根据条件决定是否继续循环。**
#### **3. 控制语句**
##### **3.1 break 和 continue**
- **break:立即退出当前循环或switch-case结构。**
- **continue:跳过本次循环剩余部分,直接开始下一次循环。**
------
#### **实战示例与技巧**
##### **示例 1: 使用 if-else 判断成绩等级**
```java
public class GradeCheck {
public static void main(String[] args) {
int score = 85;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 70) {
System.out.println("良好");
} else {
System.out.println("及格/不及格");
}
}
}
```
##### **示例 2: 使用 switch-case 实现菜单选择**
```java
public class MenuSelection {
public static void main(String[] args) {
int choice = 2;
switch (choice) {
case 1:
System.out.println("选项1");
break;
case 2:
System.out.println("选项2");
break;
default:
System.out.println("无效选项");
}
}
}
```
##### **示例 3: 使用 for 循环打印乘法表**
```java
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + (i * j) + "\t");
}
System.out.println();
}
}
}
```
#### **4、break和continue**
| **关键字** | **功能描述** |
| -------------- | ------------------------------------------------ |
| **`break`** | **终止最近的封闭循环或`switch`语句** |
| **`continue`** | **跳过当前循环体的剩余部分,立即开始下一次循环** |
```java
// ================== Break 和 Continue 示例 ==================
System.out.println("\nBreak 和 Continue 示例:");
for (int m = 0; m < 10; m++) {
if (m == 3) {
continue; // 跳过本次循环剩余部分,直接进入下一次循环
}
if (m == 7) {
break; // 终止循环
}
System.out.println("当前的m值是: " + m);
}
```
**分支选择示例:**
```java
public class Mainde {
public static void main(String[] args) {
// 示例变量
int number = 15;
String dayOfWeek = "Wednesday";
// ================== if-else 选择语句 ==================
System.out.println("=== If-Else 选择语句 ===");
if (number > 10) {
System.out.println("Number is greater than 10.");
} else if (number < 10) {
System.out.println("Number is less than 10.");
} else {
System.out.println("Number is equal to 10.");
}
// ================== switch 选择语句 ==================
System.out.println("\n=== Switch 选择语句 ===");
switch (dayOfWeek) {
case "Monday":
System.out.println("Today is Monday.");
break;
case "Tuesday":
System.out.println("Today is Tuesday.");
break;
case "Wednesday":
System.out.println("Today is Wednesday.");
break;
default:
System.out.println("Looking forward to the weekend.");
}
// 另一个 switch 示例,演示使用整数
System.out.println("\n=== Switch with Integer ===");
int month = 8;
switch (month) {
case 1: case 2: case 3:
System.out.println("第一季度");
break;
case 4: case 5: case 6:
System.out.println("第二季度");
break;
case 7: case 8: case 9:
System.out.println("第三季度");
break;
case 10: case 11: case 12:
System.out.println("第四季度");
break;
default:
System.out.println("无效的月份");
}
// ================== 演示 case 穿透(fall-through)==================
System.out.println("\n=== 演示 case 穿透(fall-through)===");
int grade = 85;
switch (grade / 10) {
case 10:
case 9:
System.out.println("优秀");
// 没有 break,会穿透到下一个 case
case 8:
System.out.println("良好");
// 没有 break,继续穿透
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
default:
System.out.println("不及格");
}
/*
* 上面的例子中:
* grade = 85 → grade / 10 = 8
* 所以进入 case 8:
* 但由于没有 break,会继续执行 case 7: 的内容。
* 输出结果为:
* 良好
* 中等
*/
}
}
```
**当一个多个case对应的结果一致时,我们可以省略break形成穿透,如上述代码**
**循环代码示例:**
```java
public class Maindemo2 {
public static void main(String[] args) {
// ================== For 循环 ==================
System.out.println("For 循环示例:");
for (int i = 0; i < 5; i++) { // 初始化; 条件判断; 更新表达式
System.out.println("当前的i值是: " + i);
}
// ================== While 循环 ==================
System.out.println("\nWhile 循环示例:");
int j = 0;
while (j < 3) { // 当条件为true时执行循环体
System.out.println("当前的j值是: " + j);
j++; // 必须更新循环变量,否则会导致无限循环
}
// ================== Do-While 循环 ==================
System.out.println("\nDo-While 循环示例:");
int k = 0;
do {
System.out.println("当前的k值是: " + k);
k++;
} while (k < 2); // 先执行一次循环体,然后检查条件
// ================== 增强型 For 循环(适用于数组和集合) ==================
System.out.println("\n增强型 For 循环示例:");
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) { // 遍历数组中的每个元素
System.out.println("数组中的元素: " + num);
}
}
}
```
**学习完上阶段咱们可以做一些小项目巩固一自己的知识,如简易的计算器、记账本等**