Java循环与控制语句全解析
立即解锁
发布时间: 2025-08-18 02:31:32 阅读量: 2 订阅数: 9 

# Java 循环与控制语句全解析
## 1. 嵌套 switch 语句
在 Java 中,可以在外部 switch 语句的语句序列中包含另一个 switch 语句,这被称为嵌套 switch 语句。即使内部和外部 switch 的 case 常量包含相同的值,也不会产生冲突。例如,以下代码片段是完全可以接受的:
```java
// 示例代码
switch (outer) {
case 1:
switch (inner) {
case 1:
System.out.println("Inner case 1");
break;
case 2:
System.out.println("Inner case 2");
break;
}
break;
case 2:
System.out.println("Outer case 2");
break;
}
```
## 2. 构建 Java 帮助系统
### 2.1 项目介绍
此项目构建了一个简单的 Java 控制语句帮助系统,该程序会显示一个包含控制语句的菜单,等待用户选择,选择后会显示所选语句的语法。在这个程序的第一个版本中,仅提供了 `if` 和 `switch` 语句的帮助信息。后续项目会添加其他控制语句的帮助。
### 2.2 操作步骤
1. 创建一个名为 `Help.java` 的文件。
2. 程序开始时显示如下菜单:
```java
System.out.println("Java 控制语句帮助系统");
System.out.println("1. if 语句");
System.out.println("2. switch 语句");
System.out.println("请输入你的选择: ");
```
3. 程序通过调用 `System.in.read()` 获取用户的选择:
```java
int choice = System.in.read();
```
4. 获取选择后,使用 `switch` 语句显示所选语句的语法:
```java
switch (choice) {
case '1':
System.out.println("if 语句语法: if (condition) statement;");
break;
case '2':
System.out.println("switch 语句语法: switch (expression) { case value: statement; break; default: statement; }");
break;
default:
System.out.println("无效的选择");
}
```
5. 以下是完整的 `Help.java` 程序清单:
```java
import java.io.IOException;
public class Help {
public static void main(String[] args) throws IOException {
System.out.println("Java 控制语句帮助系统");
System.out.println("1. if 语句");
System.out.println("2. switch 语句");
System.out.println("请输入你的选择: ");
int choice = System.in.read();
switch (choice) {
case '1':
System.out.println("if 语句语法: if (condition) statement;");
break;
case '2':
System.out.println("switch 语句语法: switch (expression) { case value: statement; break; default: statement; }");
break;
default:
System.out.println("无效的选择");
}
}
}
```
## 3. for 循环
### 3.1 基本形式
#### 3.1.1 重复单个语句
```java
for(initialization; condition; iteration) statement;
```
#### 3.1.2 重复代码块
```java
for(initialization; condition; iteration) {
statement sequence
}
```
### 3.2 各部分含义
- **初始化**:通常是一个赋值语句,用于设置循环控制变量的初始值,该变量作为控制循环的计数器。
- **条件**:一个布尔表达式,用于确定循环是否会重复执行。
- **迭代表达式**:定义每次循环重复时循环控制变量的变化量。
### 3.3 示例代码
以下程序使用 `for` 循环打印 1 到 99 之间数字的平方根,并显示每个平方根的舍入误差:
```java
public class SqrtError {
public static void main(String[] args) {
for (int i = 1; i <= 99; i++) {
double sqrt = Math.sqrt(i);
double error = i - (sqrt * sqrt);
System.out.println("数字 " + i + " 的平方根是 " + sqrt + ",舍入误差是 " + error);
}
}
}
```
### 3.4 循环方向和步长
`for` 循环可以正向或反向执行,并且可以以任意步长改变循环控制变量。例如,以下程序以 5 为步长打印从 100 到 -95 的数字:
```java
public class CountDown {
public static void main(String[] args) {
for (int i = 100; i >= -95; i -= 5) {
System.out.println(i);
}
}
}
```
### 3.5 条件测试位置
`for` 循环的条件表达式总是在循环顶部进行测试。这意味着如果条件一开始就为 false,则循环内的代码可能根本不会执行。例如:
```java
public class NoExecution {
public static void main(String[] args) {
int count = 10;
for (; count < 5; count++) {
System.out.println(count);
}
}
}
```
这个循环永远不会执行,因为控制变量 `count` 在首次进入循环时就大于 5,使得条件表达式 `count < 5` 从一开始就为 false。
### 3.6 for 循环的一些变体
#### 3.6.1 多循环控制变量
`for` 循环可以使用多个循环控制变量。例如:
```java
public class MultipleVars {
public static void main(String[] args) {
for (int i = 0, j = 10; i < 10; i++, j--) {
System.out.println("i = " + i + ", j = " + j);
}
}
}
```
在这个例子中,逗号分隔了两个初始化语句和两个迭代表达式。循环开始时,`i` 和 `j` 都会被初始化。每次循环重复时,`i` 递增,`j` 递减。
#### 3.6.2 任意布尔表达式作为条件
控制循环的条件可以是任何有效的布尔表达式,不一定需要涉及循环控制变量。例如,以下循环会一直执行,直到用户在键盘上输入字母 `S`:
```java
import java.io.IOException;
public class LoopUntilS {
public static void main(String[] args) throws IOException {
char ch;
for (; ; ) {
ch = (char) System.in.read();
if (ch == 'S')
```
0
0
复制全文
相关推荐









