CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Java 核心深化/课时/控制流
RawBlame
课时目录12 节

Java 核心深化

  1. 01Java 核心地图
  2. 02类型与变量
  3. 03控制流
  4. 04类与对象
  5. 05抽象与接口
  6. 06集合框架
  7. 07Lambda 与 Stream
  8. 08并发基础
  9. 09I/O 与 NIO
  10. 10构建工具
  11. 11测试与 JUnit
  12. 12综合练习

控制流

conditionals、lifecycle-of-a-program。

25 分钟

控制流

java-conditionals 已讲 if/else 与循环——本课深化 switch 表达式、增强 for、break/continue 与程序执行路径,让分支逻辑更清晰。

学习目标

  • 使用 switch 表达式与 yield 返回值
  • 正确选择 for、while、增强 for 循环
  • 描述从 main 到方法返回的执行顺序

switch 表达式(JDK 14+)

String level = switch (order) {
    case 1, 2 -> "intro";
    case 3, 4, 5 -> "core";
    default -> "advanced";
};

int days = switch (month) {
    case 2 -> 28;
    case 4, 6, 9, 11 -> 30;
    default -> {
        if (month < 1 || month > 12) throw new IllegalArgumentException();
        yield 31;
    }
};
  • -> 分支无需 break,避免 fall-through 漏写
  • 多行逻辑用 yield 返回值
  • 枚举 switch 应 覆盖所有常量 或加 default

循环与跳转

List<String> slugs = List.of("jvc-types", "jvc-control", "jvc-oop");

for (String slug : slugs) {          // 增强 for,只读遍历首选
    if (slug.startsWith("jvc-o")) continue;
    System.out.println(slug);
}

for (int i = 0; i < slugs.size(); i++) { // 需要索引时用经典 for
    System.out.println(i + ": " + slugs.get(i));
}
场景推荐
遍历集合增强 for 或 Stream
需要索引经典 for 或 IntStream.range
条件未知次数while
至少执行一次do-while

程序生命周期(简图)

JVM 启动 → 加载主类 → main(String[] args)
    → 顺序执行语句、进入方法栈帧
    → return / 异常 → 栈帧弹出
    → main 结束 → JVM 退出(非守护线程结束时)

理解 栈帧 有助于读递归与调试;深度递归可能 StackOverflowError。

练习

  • 用 switch 表达式把 LessonStatus 枚举映射为中文描述
  • 用增强 for 遍历 Map 的 entrySet()(预习 jvc-collections)
  • 写 读文件行直到 EOF(预习 )
while
jvc-io

小结

switch 表达式消灭 fall-through;循环按是否需要索引选型。 下一课类与对象:static、final 与访问控制。

加载本节练习…
← 上一课类型与变量下一课 →类与对象