当前位置: 首页 > ops >正文

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);
}

    }
}
```

**学习完上阶段咱们可以做一些小项目巩固一自己的知识,如简易的计算器、记账本等**

http://www.xdnf.cn/news/15601.html

相关文章:

  • Altera Quartus:编译完成后自动生成pof文件
  • 20250718-6-Kubernetes 调度-Pod对象:环境变量,初始容器,静态_笔记
  • VR平台应该具备哪些功能?怎样选择VR平台?
  • 【playwright篇】教程(十六)[macOS+playwright相关问题]
  • 填坑 | React Context原理
  • AndroidX中ComponentActivity与原生 Activity 的区别
  • STM32+w5500+TcpClient学习笔记
  • JAVA中StringBuilder类,StringJoiner类构造函数方法简单介绍
  • [2025CVPR-目标检测方向] CorrBEV:多视图3D物体检测
  • 基于 HT 的 3D 可视化智慧矿山开发实现
  • 短视频矩阵系统哪家好?全面解析与推荐
  • 无人机传感器模组运行与技术难点分析
  • 嵌入式数据结构之顺序表总结
  • 自学力扣:最长连续序列
  • 小结:Spring MVC 的 XML 的经典配置方式
  • 【每日算法】专题十三_队列 + 宽搜(bfs)
  • 详解Linux(Ubuntu/RedHat/CentOS)及国产服务器统一加域管理方案
  • 一款实用的.NET Core加密解密工具类库
  • 纯前端html实现图片坐标与尺寸(XY坐标及宽高)获取
  • 贴吧项目总结二
  • 神经网络常见激活函数 15-B-SiLU 函数
  • 如何在银河麒麟桌面系统中启用 sudo 密码的星号反馈
  • 数据结构排序算法总结(C语言实现)
  • Planning Agent:基于大模型的动态规划与ReAct机制,实现复杂问题自适应执行求解
  • 【软件测试】软件测试分类与方法解析:目标到工具
  • 【Dv3Admin】菜单管理集成阿里巴巴自定义矢量图标库
  • Linux手动安装Nginx(基于Centos 7)
  • 网络通信之基础知识
  • 项目的存量接口怎么低成本接入MCP?
  • 暑期算法训练.3