Java 流程控制语句 超详细知识点整理
流程控制是程序执行顺序的核心,Java 流程控制主要分为三大类: 顺序结构、分支结构(选择)、循环结构,外加跳转控制语句。
一、顺序结构
最简单、最基础的执行方式: 从上到下,依次执行,没有任何判断和跳转。
public class Test {
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
}
输出:1 → 2 → 3
二、分支结构(选择结构)
根据条件判断,选择其中一条路径执行。
1. if 语句(4 种写法)
(1)单分支 if
if (条件表达式) {
语句体;
}
条件为 true 才执行。
(2)双分支 if…else
if (条件) {
语句1;
} else {
语句2;
}
二选一。
(3)多分支 if…else if…else
if (条件1) {
} else if (条件2) {
} else if (条件3) {
} else {
}
适合区间判断(如成绩等级、年龄分段)。
(4)嵌套 if
if 里再写 if,可无限嵌套,但不建议太深。
if (a > 0) {
if (b > 0) {
}
}
2. switch 语句
语法
switch (表达式) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
default:
语句;
}
支持的类型(重点)
- byte/short/int/char
- 包装类:Byte/Short/Integer/Character
- String(JDK7+)
- 枚举(JDK5+) ⚠️ 不支持 long、float、double、boolean
关键规则
- case 后面必须是常量,不能重复
- break 表示跳出 switch,不写会发生case 穿透
- default 可选,放在任意位置,一般放最后
- 表达式结果必须与 case 类型匹配
case 穿透(面试常考)
不写 break,会从匹配的 case 开始一直往下执行。
switch(2) {
case 1: System.out.println(1);
case 2: System.out.println(2);
case 3: System.out.println(3);
}
输出:2、3
三、循环结构
重复执行一段代码,直到条件不满足。
1. for 循环(最常用)
标准 for
for (初始化表达式; 条件判断; 更新表达式) {
循环体;
}
执行顺序: 初始化 → 判断 → 循环体 → 更新 → 判断…
增强 for(foreach)
JDK5+,用于遍历数组/集合
for (数据类型 变量 : 数组/集合) {
}
优点:简洁 缺点:不能修改数组长度、不能获取下标
2. while 循环
先判断,后执行
while (条件) {
循环体;
迭代语句;
}
3. do…while 循环
先执行一次,再判断,至少执行一次
do {
循环体;
} while (条件);
四、三种循环对比
| 循环 | 先判断/先执行 | 使用场景 |
|---|---|---|
| for | 先判断 | 固定次数循环 |
| while | 先判断 | 次数不固定 |
| do…while | 先执行 | 必须至少执行一次 |
五、跳转控制语句(break / continue / return)
1. break
- 用于:switch、循环
- 作用:跳出当前最近一层循环/switch
带标签的 break(跳出多层循环)
outer:
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
if(j==1) break outer;
}
}
直接跳出外层循环。
2. continue
- 只用在循环
- 作用:跳过本次循环剩余语句,直接进入下一次循环
3. return
- 作用1:结束当前方法
- 作用2:返回值(有返回值方法必须带 return)
- 遇到 return,方法直接结束,后面代码不执行
六、死循环
常见写法:
while(true) { }
for(;;) { }
do{ } while(true);
一般配合 break 使用。
七、嵌套循环
循环里套循环,最典型:打印二维表格、九九乘法表
for(int i=1; i<=9; i++){
for(int j=1; j<=i; j++){
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
八、面试高频考点
- switch 支持哪些类型?
- case 穿透是什么?
- break 和 continue 区别?
- for、while、do…while 区别?
- 增强 for 能不能修改数组元素?
- 标签 break 的作用?
九、极简记忆口诀
- 顺序结构:从上往下走
- if 区间判断,switch 等值判断
- for 次数固定,while 次数不定
- do…while 至少跑一次
- break 跳出循环,continue 跳过一次
- return 直接结束方法