Appearance
2026-08-27 · 顺序、选择、循环——代码执行的三种走向,前两种最核心。
Java 流程控制
1. 选择(分支)语句
if / else if / else
java
int score = 85;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// 输出:良好
else if可以写无数个,按条件从上往下匹配,命中第一个就停。
只有一行代码时,大括号可以省(不推荐,但语法允许):
java
if (score >= 60) System.out.println("及格");switch
适合多个固定值的匹配:
java
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("其他");
break;
}
// 输出:星期三switch 三要素:
case后面跟的是常量(不能是变量或表达式)- 每个
case结尾必须写break,否则会穿透(继续执行下一个 case) default是兜底,写不写都行,通常放最后
switch 箭头语法(Java 14+)
新版写法,不用写 break,不会穿透,更简洁:
java
int day = 3;
switch (day) {
case 1 -> System.out.println("星期一");
case 2 -> System.out.println("星期二");
case 3 -> System.out.println("星期三");
default -> System.out.println("其他");
}箭头语法还能直接返回值:
java
String name = switch (day) {
case 1 -> "星期一";
case 2 -> "星期二";
case 3 -> "星期三";
default -> "其他";
};
System.out.println(name);新项目推荐用箭头语法(简洁安全),老项目还在用经典写法。两者都看懂即可。
2. 循环语句
for 循环
最常用,循环次数确定时首选:
java
// 基本结构:初始化; 条件; 迭代
for (int i = 0; i < 5; i++) {
System.out.println("第 " + i + " 次");
}
// 输出 0 1 2 3 4(共5次,i 从 0 开始)for 循环三个部分可以省略,但分号必须保留:
java
int i = 0;
for (; i < 5; ) {
System.out.println(i);
i++;
}while 循环
循环次数不确定时用:
java
int count = 0;
while (count < 5) {
System.out.println("第 " + count + " 次");
count++;
}
// 输出 0 1 2 3 4(和 for 完全等价)
while和for没有本质区别,区别只是写法。习惯用for就用for,喜欢while就用while。
for-each 循环(增强 for)
专门用于遍历数组和集合:
java
int[] nums = {10, 20, 30};
for (int n : nums) {
System.out.println(n);
}
// 输出 10 20 30对比普通 for:
java
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}遍历数组/集合时优先用 for-each,简洁不写出界。但如果需要索引(比如修改元素),还得用普通 for。
3. 跳转语句
break
终止当前循环(或 switch),跳出循环体:
java
for (int i = 0; i < 10; i++) {
if (i == 5) break;
System.out.println(i);
}
// 输出 0 1 2 3 4(到 5 就停了)continue
跳过本次循环剩余代码,直接进入下一次:
java
for (int i = 0; i < 5; i++) {
if (i == 2) continue;
System.out.println(i);
}
// 输出 0 1 3 4(跳过了 2)return
直接从方法返回(结束整个方法,不只是循环):
java
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 5) return; // 直接结束 main 方法
System.out.println(i);
}
System.out.println("这行永远不会执行");
}
// 输出 0 1 2 3 4
break出循环,return出方法。两者层级不同,别混了。