Java 控制语句

2025年5月6日 | 阅读 10 分钟

Java 编译器从上到下执行代码。代码中的语句按照它们出现的顺序执行。然而,Java 提供了可用于控制 Java 代码流程的语句。此类语句称为控制流语句。它是 Java 的基本特性之一,提供了程序的流畅流程。

Java 提供三种类型的控制流语句。

  1. 决策语句
    • if 语句
    • switch 语句
  2. 循环语句
    • do-while 循环
    • while 循环
    • for 循环
    • for-each 循环
  3. 跳转语句
    • break 语句
    • continue 语句

决策语句

顾名思义,决策语句决定要执行哪个语句以及何时执行。决策语句评估布尔表达式并根据所提供条件的结果控制程序流程。Java 中有两种类型的决策语句,即 If 语句和 switch 语句。

1) If 语句

在 Java 中,“if”语句用于评估条件。程序的控制根据特定条件进行转移。If 语句的条件给出布尔值,要么为 true,要么为 false。在 Java 中,if 语句有以下四种类型。

  1. 简单 if 语句
  2. if-else 语句
  3. if-else-if 梯形结构
  4. 嵌套 if 语句

让我们逐一了解 if 语句。

1) 简单 if 语句

它是 Java 中所有控制流语句中最基本的语句。它评估一个布尔表达式,如果表达式评估为 true,则允许程序进入代码块。

if 语句的语法如下。

考虑以下示例,其中我们在 Java 代码中使用了 if 语句。

示例

编译并运行

输出

x + y is greater than 20

2) if-else 语句

if-else 语句是 if 语句的扩展,它使用另一个代码块,即 else 块。如果 if 块的条件评估为 false,则执行 else 块。

语法

请看以下示例。

示例

编译并运行

输出

x + y is greater than 20

3) if-else-if 梯形结构

if-else-if 语句包含 if 语句,后跟多个 else-if 语句。换句话说,我们可以说它是 if-else 语句的链,它创建一个决策树,程序可以在条件为 true 的代码块中进入。我们还可以在链的末尾定义一个 else 语句。

if-else-if 语句的语法如下。

请看以下示例。

示例

编译并运行

输出

Delhi

4. 嵌套 if 语句

在嵌套 if 语句中,if 语句可以包含一个 ifif-else 语句,该语句位于另一个 if 或 else-if 语句内部。

嵌套 if 语句的语法如下。

请看以下示例。

示例

编译并运行

输出

Delhi

Switch 语句

在 Java 中,Switch 语句类似于 if-else-if 语句。switch 语句包含多个称为 case 的代码块,并根据被切换的变量执行单个 case。switch 语句比 if-else-if 语句更容易使用。它还提高了程序的可读性。

关于 switch 语句的注意事项

  • case 变量可以是 int、short、byte、char 或枚举。自 Java 7 版起也支持 String 类型
  • case 不能重复
  • 当任何 case 都不匹配表达式的值时,执行 default 语句。它是可选的。
  • 当条件满足时,break 语句终止 switch 块。
    它是可选的,如果不使用,则执行下一个 case。
  • 在使用 switch 语句时,我们必须注意 case 表达式的类型将与变量相同。但是,它也将是一个常量值。

使用 switch 语句的语法如下。

考虑以下示例以了解 switch 语句的流程。

示例

编译并运行

输出

2

在使用 switch 语句时,我们必须注意 case 表达式的类型将与变量相同。但是,它也将是一个常量值。switch 只允许使用 int、string 和 Enum 类型变量。

循环语句

在编程中,有时我们需要在某个条件评估为 true 时重复执行代码块。然而,循环语句用于重复执行一组指令。一组指令的执行取决于特定条件。

在 Java 中,我们有三种类型的循环,它们的执行方式相似。但是,它们的语法和条件检查时间存在差异。

  1. for 循环
  2. while 循环
  3. do-while 循环

让我们逐一了解循环语句。

Java for 循环

在 Java 中,for 循环类似于 CC++。它允许我们在一行代码中初始化循环变量、检查条件以及递增/递减。我们只在确切知道要执行代码块的次数时才使用 for 循环。

for 循环的流程图如下。

Control Flow in Java

考虑以下示例以了解 Java 中 for 循环的正常运行。

示例

编译并运行

输出

The sum of first 10 natural numbers is 55

Java for-each 循环

Java 提供了一种增强的 for 循环来遍历数组或集合等数据结构。在 for-each 循环中,我们不需要更新循环变量。Java 中使用 for-each 循环的语法如下。

考虑以下示例以了解 Java 中 for-each 循环的运行。

示例

编译并运行

输出

Printing the content of the array names:

Java
C
C++
Python
JavaScript

Java while 循环

while 循环也用于多次迭代多条语句。然而,如果我们事先不知道迭代次数,建议使用 while 循环。与 for 循环不同,while 循环中的初始化和递增/递减不会发生在循环语句内部。

它也被称为入口控制循环,因为条件在循环开始时检查。如果条件为 true,则执行循环体;否则,执行循环后的语句。

while 循环的语法如下。

while 循环的流程图如下所示。

Control Flow in Java

请看以下示例。

示例

编译并运行

输出

Printing the list of first 10 even numbers 

0
2
4
6
8
10

Java do-while 循环

do-while 循环在执行循环语句后,在循环结束时检查条件。当迭代次数未知且我们必须至少执行一次循环时,我们可以使用 do-while 循环。

它也被称为出口控制循环,因为条件不会提前检查。do-while 循环的语法如下。

do-while 循环的流程图如下所示。

Control Flow in Java

考虑以下示例以了解 Java 中 do-while 循环的运行。

示例

编译并运行

输出

Printing the list of first 10 even numbers 
0
2
4
6
8
10

跳转语句

跳转语句用于将程序的控制转移到特定语句。换句话说,跳转语句将执行控制转移到程序的其他部分。Java 中有两种类型的跳转语句,即 break 和 continue。

Java break 语句

顾名思义,break 语句用于中断程序的当前流程,并将控制转移到循环或 switch 语句之外的下一条语句。但是,在嵌套循环的情况下,它只中断内部循环。

break 语句不能在 Java 程序中独立使用,即它只能写在循环或 switch 语句内部。

带 for 循环的 break 语句示例

考虑以下示例,其中我们使用了带 for 循环的 break 语句。

示例

编译并运行

输出

0
1
2
3
4
5
6

带标签 for 循环的 break 语句示例

示例

编译并运行

输出

0
1
2
3
4
5

Java continue 语句

与 break 语句不同,continue 语句不会中断循环,而是跳过循环的特定部分并立即跳转到循环的下一个迭代。

考虑以下示例以了解 Java 中 continue 语句的运行。

示例

编译并运行

输出

0
1
2
3
5
1
2
3
5
2
3
5

Java 控制语句 MCQ

1. Java 中 while 循环和 do-while 循环的关键区别是什么?

  1. while 循环至少执行其主体一次,而 do-while 循环可能根本不执行其主体。
  2. while 循环总是检查循环体末尾的循环条件,而 do-while 循环在开始时检查它。
  3. do-while 循环适用于循环体必须执行固定次数的场景,而 while 循环更灵活。
  4. while 循环和 do-while 循环之间没有区别。
 

答案:a)

解释:与在开始时检查条件的 while 循环不同,do-while 循环在结束时检查条件,确保循环体至少执行一次。


2. continue 语句在 Java 中通常在什么时候使用?

  1. 完全退出循环
  2. 跳过循环体的其余部分并继续下一个迭代
  3. 从头开始重新启动循环
  4. 跳出嵌套循环
 

答案:b)

解释:continue 语句用于跳过当前迭代中循环体内的其余代码,并移动到循环的下一个迭代。


3. 如果在 Java 的嵌套循环中使用 break 语句会发生什么?

  1. 它只退出最内层循环并继续执行外层循环。
  2. 它退出所有嵌套循环并继续执行最外层循环之后的代码。
  3. 它会导致编译错误。
  4. 它只退出外层循环并继续执行内层循环。
 

答案:a)

解释:当在嵌套循环中遇到 break 语句时,它只退出最内层循环并继续执行外层循环。


4. switch 语句中 default case 的意义是什么?

  1. 当没有其他 case 匹配表达式的值时执行。
  2. 在 switch 语句中的任何其他 case 之前执行。
  3. 它是可选的,在 switch 语句中不是必需的。
  4. 如果表达式的值为 null,则执行。
 

答案:a)

解释:如果 switch 语句中没有其他 case 匹配正在评估的表达式的值,则执行 default case。


5. 在 Java 的 for 循环中,以下哪个组件是可选的?

  1. 初始化
  2. 条件
  3. 递增/递减
  4. 所有组件都是强制性的
 

答案:d)

解释:在 Java 的 for 循环中,所有三个组件——初始化、条件和递增/递减——都是强制性的,并且必须存在才能使循环正常工作。