Java编程中的控制流语句与数组
立即解锁
发布时间: 2025-08-21 00:56:19 阅读量: 1 订阅数: 12 


Java编程艺术:从初学者到大师的进阶指南
# Java 编程中的控制流语句与数组
## 1. Java 控制流语句概述
在 Java 编程中,程序控制流语句有着至关重要的地位,它能让程序在运行时改变执行路径。控制流语句主要分为两类:选择语句和迭代语句。
### 1.1 选择语句
选择语句用于为程序执行提供不同的路径,主要包括以下三种:
- **if 语句**:条件表达式必须计算为布尔值(true 或 false),任何能计算出布尔值的表达式都可使用。
- **if/else 语句**:同样,其条件表达式也需计算为布尔值,可将多个 if 和 if/else 语句链接起来,形成复杂的程序逻辑。
- **switch 语句**:用于计算 char、byte、short 或 int 类型的值,并执行匹配的 case 及其关联语句。使用 break 关键字可退出 switch 语句,避免 case 穿透,同时应始终提供 default 情况。
### 1.2 迭代语句
迭代语句基于条件表达式的计算结果重复执行代码块,主要有以下三种:
- **while 语句**:在执行代码块之前先计算条件表达式。
- **do/while 语句**:先执行代码块,再计算条件表达式,这意味着该语句的代码块至少会执行一次。
- **for 语句**:它将循环变量的声明和初始化、条件表达式计算以及循环计数器变量的递增整合在一起,是编写 while 语句的便捷方式。
### 1.3 break 和 continue 关键字
- **break 语句**:不仅可用于退出 switch 语句,还能退出 for、while 和 do 循环。有未标记(unlabeled)和标记(labeled)两种形式,未标记的 break 退出其直接包含的循环;标记的 break 用于退出标记的迭代语句。
- **continue 关键字**:终止当前迭代语句的循环,并强制开始新的迭代。未标记的 continue 会强制其直接包含的循环开始新的迭代;标记的 continue 会强制标记的迭代语句开始新的迭代。
## 2. 控制流语句技能练习
### 2.1 if 语句练习
编写一个程序,从控制台读取四个字符串值,使用 `Integer.parseInt()` 方法将它们转换为 int 值,并将这些值赋给变量 `int_i`、`int_j`、`int_k` 和 `int_l`。然后编写一系列 if 语句,执行以下条件表达式和相应操作:
| 条件表达式 | 操作 |
| --- | --- |
| `int_i < int_j` | 向控制台打印一条文本消息,表明 `int_i` 小于 `int_j`,并在消息中使用变量的值。 |
| `(int_i + int_j) <= int_k` | 向控制台打印一条文本消息,显示所有变量的值以及加法运算的结果。 |
| `int_k == int_l` | 向控制台打印一条文本消息,表明 `int_k` 等于 `int_l`,并在消息中使用变量的值。 |
| `(int_k != int_i) && (int_j > 25)` | 向控制台打印一条文本消息,显示变量的值。 |
| `(++int_j) & (--int_l)` | 向控制台打印一条文本消息,显示变量的值。 |
运行程序时使用不同的输入值集合,查看是否能使所有条件表达式都计算为 true。
### 2.2 if/else 语句练习
编写一个程序,从命令行读取两个名称,将其分配给字符串变量 `name_1` 和 `name_2`。使用 if/else 语句比较 `name_1` 和 `name_2` 的文本内容。如果文本相等,则向控制台打印一条文本消息,显示名称并表明它们相等;如果不相等,则打印一条消息表明它们不相等。可使用 `String.equals(Object o)` 方法进行字符串值的比较,示例代码如下:
```java
String name_1 = "Coralie";
String name_2 = "Coralie";
boolean isEqual = name_1.equals(name_2);
```
### 2.3 switch 语句练习
编写一个程序,从命令行读取一个字符串值,并将字符串的第一个字符分配给 char 变量 `char_val`。使用 switch 语句检查 `char_val` 的值,并根据以下情况执行相应操作:
| 情况 | 操作 |
| --- | --- |
| `‘A’` | 提示用户输入两个数字,将用户输入的两个数字相加,并将总和打印到控制台。 |
| `‘S’` | 提示用户输入两个数字,用第二个数字减去第一个数字,并将结果打印到控制台。 |
| `‘M’` | 提示用户输入两个数字,将它们相乘,并将结果打印到控制台。 |
| `‘D’` | 提示用户输入两个数字,用第一个数字除以第二个数字,并将结果打印到控制台。 |
| `default` | 提示用户输入两个数字,将它们相加,并将总和打印到控制台。 |
别忘了使用 break 关键字退出每个 case。
### 2.4 while 语句练习
编写一个程序,提示用户输入一个字母,将该字母分配给 char 变量 `char_c`。使用 while 语句,只要用户不输入字母 `‘Q’`,就重复向控制台打印文本 “I love Java!”。
### 2.5 do/while 语句练习
编写一个程序,提示用户输入一个数字,将用户的输入转换为 int 类型,并将该值分配给 int 变量 `int_i`。使用 do/while 循环将该变量自身相加五次,并打印 do/while 循环每次迭代的结果。
### 2.6 for 语句练习
编写一个程序,使用 for 语句计算特定的求和。
### 2.7 链式 if/else 语句练习
使用链式 if/else 语句重写技能练习 1。
### 2.8 混合选择和迭代语句练习 1
重写技能练习 3,使用 while 循环重复处理 switch 语句。如果用户输入字符 `'E'`,则退出 while 语句。
### 2.9 混合选择和迭代语句练习 2
再次重写技能练习 3,这次使用 `while(true)` 使 while 循环永远执行。在 switch 语句中添加一个 case,当用户输入字符 `'E'` 时退出程序,可使用 `System.exit()` 方法。
### 2.10 混合选择和迭代语句练习 3
重写技能练习 6,反复提示用户输入 `n` 的值,计算求和,并将求和的每一步结果打印到控制台。持续提示用户输入数字并执行操作,直到用户输入 0 为止。
## 3. 控制流语句自测问题及答案
### 3.1 自测问题
1. 选择或迭代语句的条件表达式必须计算为什么类型?
2. 选择语句的目的是什么?
3. 迭代语句的目的是什么?
4. switch 语句的值可以使用哪四种类型?
5. while 语句和 do/while 语句的主要区别是什么?
6. 解释在某些编程情况下,为什么会选择使用 do/while 语句而不是 while 语句?
7. 什么时候会使用 switch 语句而不是链式 if/else 语句?
8. break 语句在 switch 语句中的用途是什么?
9. 在迭代语句中使用未标记的 break 语句会有什么效果?
10. 在迭代语句中使用标记的 break 语句会有什么效果?
11. 在迭代语句中使用未标记的 continue 语句会有什么效果?
12. 在迭代语句中使用标记的 continue 语句会有什么效果?
### 3.2 答案
1. 布尔型(boolean)
2. 根据布尔表达式的计算结果改变程序执行流程。
3. 迭代语句根据表达式的结果重复执行其主体中的语句。
4. int、char、byte、short
5. do/while 语句至少会执行一次其主体代码。
6. 当需要至少执行一次迭代语句主体中的语句时。
7. 当评估标准基于 int、short、byte 或 char 类型时。
8. 防止 case 语句穿透。
9. 退出最内层的迭代语句。
10. 退出指定名称的迭代语句。
11. 停止执行,并从其包含的迭代语句的开头重新开始。
12. 停止执行,并开始执行指定名称的迭代语句。
## 4. 数组概述
### 4.1 数组的定义
数组是相同大小或同类数据类型元素的连续内存分配。“连续”意味着数组元素在内存中一个接一个地排列;“相同大小”表示每个数组元素占用相同的内存空间,其大小由数组声明包含的对象类型决定。例如,若数组声明为包含整数基本类型,每个元素将是一个整数的大小,占用 4 字节;若声明为包含双精度基本类型,每个元素的大小将为 8 字节。“同类”常用来指代具有相同数据类型和相同大小的对象。
### 4.2 数组元素的访问
数组元素通过其数组索引编号进行引用或访问,索引编号总是比要访问的元素编号小 1。例如,要访问数组的第一个元素,使用索引编号 0;访问第二个元素,使用索引编号 1,以此类推。数组包含的元素数量称为其长度,索引编号范围从 0 到 `length - 1`。
### 4.3 数组类型的指定
数组元素可以是基本类型、引用类型
0
0
复制全文
相关推荐










