模式切换
流程控制
复合语句
概念:用 {}
包裹的多行代码,形成一个独立的作用域。变量在块内声明时,仅在该块内有效。
用途:控制变量作用域,增强代码逻辑的局部性。
示例:
java
{ // 复合语句开始
int x = 10;
System.out.println(x); // 输出 10
} // 复合语句结束
// System.out.println(x); // 错误!x 超出作用域
条件语句
if 条件语句
简单 if 语句
语法:
java
if (条件1) {
// 条件1为 true 时执行
} else if (条件2) {
// 条件2为 true 时执行
} else {
// 其他情况执行
}
图 if 条件语句执行过程
图 if...else 语句执行过程
图 if...else if 多分支语句执行过程
示例:
java
int score = 85;
if (score >= 90) {
System.out.println("A");
} else if (score >= 80) {
System.out.println("B"); // 输出 B
} else {
System.out.println("C");
}
注意:条件必须是布尔表达式(true/false)。
switch 条件语句
语法(支持 Java 14+ 箭头语法):
java
switch (表达式) {
case 值1 -> System.out.println("匹配值1");
case 值2 -> {
// 多行代码用 {}
System.out.println("匹配值2");
}
default -> System.out.println("默认分支");
}
图 switch 语句执行过程
注意:
- 支持类型:int, char, String, enum 等。java
// case 表达式的值不能为实数,例如下方的代码是不合法的 switch (score) { case 85.0: System.out.println("85 分"); break; }
- Java 14+ 支持 yield 返回值(需用 case -> 语法)。
- 同一个 switch 语句,case 值不能重复。
示例:
java
String day = "MON";
switch (day) {
case "MON":
System.out.println("周一");
break; // 防止穿透
case "TUE":
System.out.println("周二");
break;
default:
System.out.println("其他");
}
循环语句
while 循环语句
语法:
java
while (条件) {
// 条件为 true 时重复执行
}
图 while 循环语句执行过程
示例:
java
int i = 0;
while (i < 3) {
System.out.println(i); // 输出 0, 1, 2
i++;
}
do-while 循环语句
语法:
java
do {
// 先执行一次,再检查条件
} while (条件);
图 do-while 循环语句执行过程
示例:
java
int j = 0;
do {
System.out.println(j); // 至少输出 0
j++;
} while (j < 0); // 条件为 false
for 循环语句
语法:
java
for (初始化; 条件; 迭代) {
// 循环体
}
图 for 循环语句执行过程
示例(遍历数组):
java
int[] arr = {1, 2, 3};
for (int k = 0; k < arr.length; k++) {
System.out.println(arr[k]); // 输出 1, 2, 3
}
在实际编码中,有可能会使用到 for 循环的特殊语法格式来实现无限循环:
java
for (;;) {
// 无限循环
}
对于这种无限循环,可以使用 break 语句来跳出循环:
java
for (;;) {
if (x < 20) {
break; // 跳出循环
x++;
}
}
增强 for 循环(遍历集合/数组):
java
for (int num : arr) {
System.out.println(num); // 输出 1, 2, 3
}
循环控制
break 语句
作用:立即退出当前循环或 switch。
图 break 关键字使用形式
注意:在嵌套循环中,break 语句只能跳出当前循环。
java
for (int m = 0; m < 3; m++) {
for (int n = 0; n < 3; n++) {
if (m == 1 && n == 1) break; // 跳出内层循环
}
}
示例(带标签跳出多层循环):
java
outerLoop:
for (int x = 0; x < 3; x++) {
for (int y = 0; y < 3; y++) {
if (x == 1 && y == 1) break outerLoop; // 直接跳出外层循环
}
}
continue 语句
作用:跳过当前循环的剩余代码,进入下一次迭代。
图 continue 关键字使用形式
示例(跳过偶数):
java
for (int n = 0; n < 5; n++) {
if (n % 2 == 0) continue;
System.out.println(n); // 输出 1, 3
}