Java 基础 - Java 中的控制结构
1. 概述
从最基本的意义上讲,程序是一系列指令。控制结构是编程块,可以改变我们通过这些指令的路径。
本文中,我们将探索 Java 中的控制结构。
它有三种控制结构:
- 条件分支,用于在两条或多条路径之间进行选择。Java 中有三种类型:
if/else/else if
、三元运算符和switch
。 - 用于迭代多个值/对象并重复运行特定代码块的循环。Java 中的基本循环类型有
for
、while
和do while
。 - 分支语句,用于改变循环中的控制流。Java 中有两种类型:
break
和continue
。
2. If/Else/Else If
if/else
语句是最基础的控制结构,但也可以被认为是编程决策的基础。
虽然 if
可以单独使用,但最常见的使用场景是使用 if/else
在两条路径之间进行选择:
if (count > 2) {
System.out.println("Count is higher than 2");
} else {
System.out.println("Count is lower or equal than 2");
}
理论上,我们可以无限地链接或嵌套 if/else
块,但这会损害代码的可读性,这就是为什么不建议这样做。
我们将在本文的其余部分探讨其他陈述。
3. 三元表达式
我们可以使用三元运算符作为类似 if/else
语句的简写表达式。
让我们再次看看 if/else
示例:
if (count > 2) {
System.out.println("Count is higher than 2");
} else {
System.out.println("Count is lower or equal than 2");
}
我们可以用三元函数重构它,如下所示:
System.out.println(count > 2 ? "Count is higher than 2" : "Count is lower or equal than 2");
虽然三元表达式可以使我们的代码更具可读性,但它并不总是 if/else
的好替代品。
4. Switch
如果我们有多个情况(case)可供选择,我们可以使用 switch
语句。
我们看看一个简单的示例:
int count = 3;
switch (count) {
case 0:
System.out.println("Count is equal to 0");
break;
case 1:
System.out.println("Count is equal to 1");
break;
default:
System.out.println("Count is either negative, or higher than 1");
break;
}
三个或更多 if/else
语句可能很难阅读。作为可能的解决方法之一,我们可以使用 switch
,如上所示。
还要记住,switch
有作用域和输入限制,我们需要在使用它之前记住这些限制。
5. 循环
当我们需要连续多次重复相同的代码时,可以使用循环。
让我们来看一个类似 for
和 while
循环类型的快速示例:
for (int i = 1; i <= 50; i++) {
methodToRepeat();
}
int whileCounter = 1;
while (whileCounter <= 50) {
methodToRepeat();
whileCounter++;
}
上面的两段代码都将调用 methodToRepeat
50 次。
6. Break
使用 break
可以提前从循环中退出。
比如:
List<String> names = getNameList();
String name = "John Doe";
int index = 0;
for ( ; index < names.length; index++) {
if (names[index].equals(name)) {
break;
}
}
此处,我们正在一个名字列表中寻找一个名字,一旦找到,我们想停止寻找。
循环通常会完成,但我们在这里使用 break
来短路并提前退出。
7. Continue
简言之,continue
意味着跳过我们所处循环的其余部分:
List<String> names = getNameList();
String name = "John Doe";
String list = "";
for (int i = 0; i < names.length; i++) {
if (names[i].equals(name)) {
continue;
}
list += names[i];
}
此处,我们跳过将重复的名字附加到列表中的处理过程。
如我们所见,break
和 continue
在迭代时可能很方便,尽管它们通常可以用 return 语句或其他逻辑重写。
8. 结论
在这篇短文中,我们学习了什么是控制结构,以及如何使用它们来管理 Java 程序中的流控制。