# 2026-07-15 JavaSE 课后作业

> **课程内容**：switch 分支语句、循环结构、循环控制语句、嵌套循环、数组  
> **提交方式**：在 `提交\姓名\` 目录下创建对应的 Java 源文件  
> **截止时间**：下次上课前

---

## 一、基础题（必做 1~6）

### 题目 1：动态初始化创建数组

**难度**：⭐  
**知识点**：动态初始化、数组长度

使用**动态初始化**的方式创建一个 `int` 类型的数组，长度为 5，数组名为 `arr`。

**要求**：
- 使用 `new int[5]` 语法
- 不需要手动赋值
- 直接输出这句话：`我已创建了一个长度为5的int数组`

**示例代码框架**：
```java
public class Demo_01_姓名 {
    public static void main(String[] args) {
        // 在这里写你的代码
    }
}
```

---

### 题目 2：静态初始化创建数组

**难度**：⭐  
**知识点**：静态初始化

使用**静态初始化**的方式创建一个 `int` 类型的数组，数组元素为 `10, 20, 30, 40, 50`，数组名为 `arr`。

**要求**：
- 使用简写方式 `{ }` 赋值
- 输出这句话：`数组已创建，元素为：10 20 30 40 50`

**示例输出**：
```
数组已创建，元素为：10 20 30 40 50
```

---

### 题目 3：创建数组并给元素赋值

**难度**：⭐  
**知识点**：动态初始化、索引赋值

创建一个长度为 3 的 `int` 类型数组，然后分别为三个元素赋值：

- 第 1 个元素赋值为 `100`
- 第 2 个元素赋值为 `200`
- 第 3 个元素赋值为 `300`

**要求**：
- 使用 `new int[3]` 动态初始化
- 使用 `数组名[索引] = 值` 的方式赋值

**示例输出**：
```
第一个元素：100
第二个元素：200
第三个元素：300
```

---

### 题目 4：输出数组中第 1 个元素

**难度**：⭐  
**知识点**：索引访问、输出语句

定义一个 `int` 类型数组 `{5, 10, 15, 20, 25}`，使用 `System.out.println` 输出数组中**第 1 个元素**的值。

**要求**：
- 使用静态初始化
- 通过索引访问元素（注意索引从几开始）

**示例输出**：
```
数组中第一个元素的值是：5
```

> 💡 **提示**：数组的索引从 `0` 开始，第 1 个元素的索引是 `0`。

---

### 题目 5：输出数组中索引为 2 的元素

**难度**：⭐  
**知识点**：索引访问

定义一个 `int` 类型数组 `{7, 14, 21, 28, 35}`，输出数组中**索引为 2** 的那个元素的值。

**要求**：
- 使用静态初始化
- 不要搞混"索引"和"第几个"的区别

**示例输出**：
```
数组中索引为2的元素的值是：21
```

> 💡 **提示**：索引 `2` 对应的是数组中的第 **3** 个元素。想想为什么？

---

### 题目 6：使用 for 循环遍历数组

**难度**：⭐  
**知识点**：for 循环、数组遍历、length 属性

定义一个 `int` 类型数组 `{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}`，使用 `for` 循环将数组中的每个元素输出到控制台。

**要求**：
- 循环条件中使用 `arr.length` 获取数组长度
- 不能在代码中直接写数字 `10`
- 每个元素输出占一行

**示例输出**：
```
1
2
3
4
5
6
7
8
9
10
```

> 💡 **提示**：`数组名.length` 可以获取数组的长度，比如 `arr.length` 的值就是 `10`。

---

## 二、进阶题（选做 7~10）

### 题目 7：遍历数组并求和

**难度**：⭐⭐  
**知识点**：数组遍历、累加求和

定义一个整数数组 `{11, 22, 33, 44, 55}`，使用 `for` 循环遍历数组，计算所有元素的总和并输出。

**示例输出**：
```
数组元素：11 22 33 44 55
数组总和：165
```

---

### 题目 8：查找数组最大值

**难度**：⭐⭐  
**知识点**：数组遍历、比较运算

定义一个整数数组 `{3, 8, 1, 9, 4, 7, 2}`，找出数组中的最大值并输出。

**要求**：
- 使用 `for` 循环遍历比较
- 先假设第 1 个元素是最大值，然后依次跟后面的元素比较

**示例输出**：
```
数组元素：3 8 1 9 4 7 2
最大值：9
```

> 💡 **提示**：可以定义一个变量 `max`，初始值为数组第一个元素，然后遍历数组，遇到更大的就更新 `max`。

---

### 题目 9：数组元素倒序输出

**难度**：⭐⭐  
**知识点**：数组遍历、索引逆向操作

定义一个整数数组 `{1, 2, 3, 4, 5}`，从后往前遍历数组，将元素倒序输出。

**要求**：
- 使用 `for` 循环，从 `arr.length - 1` 开始，到 `0` 结束
- 不能改变原数组的内容

**示例输出**：
```
原数组： 1 2 3 4 5
倒序后： 5 4 3 2 1
```

> 💡 **提示**：最后一个元素的索引是 `arr.length - 1`，想想循环的起始值和结束条件怎么写。

---

### 题目 10：统计奇偶数个数

**难度**：⭐⭐  
**知识点**：数组遍历、if-else 分支、取模运算

定义一个整数数组 `{12, 7, 9, 24, 15, 8, 31, 46}`，遍历数组，统计其中奇数和偶数的个数。

**要求**：
- 使用 `%` 运算符判断奇偶
- 定义两个变量分别计数

**示例输出**：
```
数组元素：12 7 9 24 15 8 31 46
偶数个数：4
奇数个数：4
```

> 💡 **提示**：`n % 2 == 0` 表示偶数，`n % 2 == 1` 表示奇数。

---

## 三、提交要求

1. 在 `提交` 文件夹下创建【以你名字命名】的文件夹，然后复制 Java 源文件
2. 每个题目一个文件，命名格式：`Demo_题目编号_姓名.java`
   - 例如：`Demo_01_张三.java`
3. 文件头部使用文档注释，包含：
   ```java
   /**
    * @author 你的姓名
    * @title 题目X：题目名称
    * @create 2026/7/15
    */
   ```
4. 代码整洁，有必要的注释
5. 基础题（1~6）为**必做**
6. 进阶题（7~10）为**选做**，学有余力的同学尝试完成