三、流程控制语句

6 阅读3分钟

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

关键规则

  1. case 后面必须是常量,不能重复
  2. break 表示跳出 switch,不写会发生case 穿透
  3. default 可选,放在任意位置,一般放最后
  4. 表达式结果必须与 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();
}

八、面试高频考点

  1. switch 支持哪些类型?
  2. case 穿透是什么?
  3. break 和 continue 区别?
  4. for、while、do…while 区别?
  5. 增强 for 能不能修改数组元素?
  6. 标签 break 的作用?

九、极简记忆口诀

  • 顺序结构:从上往下走
  • if 区间判断,switch 等值判断
  • for 次数固定,while 次数不定
  • do…while 至少跑一次
  • break 跳出循环,continue 跳过一次
  • return 直接结束方法