大二java第四课

发布时间:2026/10/24 6:37:26
大二java第四课 大二上学期 Java 第四课流程控制——分支与循环第三课解决了算得对和读得进第四课解决按什么顺序走。分支决定程序走哪条路循环决定一段路走几遍。这一课语法不难但坑全在边界和细节上if-else 的悬挂、switch 的穿透、循环的边界条件每一个都是实验课调试的高频事故点。一、流程控制的地图三种结构任何程序的控制流只有三种基本结构顺序、分支、循环。顺序结构就是代码从上往下依次执行不需要专门语法。这一课重点讲分支和循环它们是后面所有算法题的骨架。二、if 分支三种形态2.1 单分支与双分支单分支是条件成立就做不成立就跳过双分支是成立做 A不成立做 B。条件表达式的结果必须是布尔值这是第二课强调过的Java 里不能拿数字当条件和 C 语言不同。2.2 多分支与 else if 链多个条件互斥时用 else if 串起来。关键理解else if 链是从上往下依次判断一旦某个条件成立执行完就跳出整条链后面的条件不再判断。所以条件的书写顺序很重要范围判断要从大到小或从小到大排好顺序乱了逻辑就错。常见错误把本应互斥的多个 if 写成并列的独立 if结果多个分支都执行了。并列 if 和 else if 链的区别是第四课第一个必须搞清楚的点。2.3 悬挂 else 问题当 if 后面只有一条语句时大括号可以省略。但嵌套 if 时省略大括号else 会和最近的、还没配对的 if 结合而不是和你想的那个 if 配对。这就是悬挂 else问题。解决方式很简单永远写大括号。哪怕只有一行也加上。这个问题在 C 语言里就存在Java 一样大二阶段直接养成if 必带大括号的习惯一劳永逸。三、switch 分支等值判断的专用工具3.1 适用场景与基本结构switch 适合对一个变量做多个等值判断的场景比如根据菜单编号跳转到不同功能。它的结构是一个待判断的表达式加若干个 case 分支最后可以有一个 default 兜底。能用于 switch 判断的类型有限制整数类型、字符型、字符串较新版本支持、枚举。浮点数和布尔值不能用于 switch这是常考点。3.2 穿透现象switch 最大的坑现象某个 case 匹配上之后执行完它下面的语句如果没有遇到跳出语句会继续往下执行后面所有 case 的语句直到遇到跳出语句或 switch 结束。这叫穿透。原因switch 的本质是跳转到匹配的 case 标签然后一路往下执行它不会自动在每个 case 末尾停下。两种用法· 绝大多数情况要避免穿透每个 case 末尾加跳出语句· 少数情况可以利用穿透多个 case 共享同一段处理逻辑时把它们的标签叠在一起最后只写一次处理代码和跳出语句。这是合法的技巧但要写注释说明意图否则别人读代码会以为是漏写了跳出。default 的位置default 可以放在任意位置不一定在最后。但不管放哪它的执行时机都是所有 case 都不匹配时和书写位置无关。放在最后是惯例可读性最好。3.3 switch 和 if 怎么选判断条件是等于某几个固定值用 switch可读性好判断条件是范围、区间、复杂逻辑组合用 if。两者可以互相改写但各有适用场景实验课写菜单程序基本都用 switch。四、循环三种写法一个核心4.1 三种循环的分工· for 循环循环次数已知时首选初始化、条件、更新三部分写在一行结构最紧凑· while 循环循环次数未知、靠条件决定是否继续时用先判断后执行· do-while 循环先执行后判断循环体至少执行一次。这是它和 while 唯一的本质区别也是考点。选择建议次数明确用 for次数不明确用 while必须至少执行一次用 do-while。实验课的菜单程序通常用 do-while因为菜单至少要显示一次。4.2 循环的四个要素写任何循环前先想清楚四件事1. 初始化循环变量从哪开始2. 条件什么时候继续循环3. 循环体每轮做什么4. 更新每轮结束后循环变量怎么变。漏掉更新就是死循环这是实验课最常见的事故。程序卡住不动、风扇狂转先检查循环变量有没有更新。4.3 边界条件小于还是小于等于循环条件写小于还是小于等于决定了循环执行几次这是循环题最大的失分点。判断方法代入边界值手动模拟一遍。比如从 1 循环到 10如果条件是小于等于 10最后一轮是 10共 10 次如果写成小于 10最后一轮是 9只有 9 次。差一次结果全错。数组相关的循环尤其要注意数组下标从 0 开始长度一层是 n 的数组合法下标是 0 到 n-1所以循环条件通常是小于长度写成小于等于长度就会越界。这个坑到后面学数组时会集中爆发第四课先把边界要手动模拟的习惯建立起来。4.4 嵌套循环循环里套循环外层控制行、内层控制列是打印图形题的标准套路。关键理解外层每走一轮内层完整走一遍。所以总执行次数是两层次数的乘积。嵌套循环的性能问题大二阶段不用深究但要有一个直觉嵌套层数越多执行次数增长越快能解决就别套两层。五、两个跳转语句break 和 continue5.1 break跳出当前层break 用在循环里作用是立即结束当前这一层循环跳到循环后面的语句。用在 switch 里作用是结束 switch 的穿透。注意break 只跳出它所在的那一层循环。嵌套循环里内层的 break 只结束内层外层继续。想跳出外层需要加标签大二上学期一般不要求知道有这个限制即可。5.2 continue跳过本轮continue 的作用是结束当前这一轮直接进入下一轮的条件判断循环本身不结束。break 和 continue 的区别是必考点break 是整个循环不干了continue 是这一轮不干了下一轮继续。5.3 使用建议break 和 continue 用多了会让循环逻辑变得难以阅读。能用循环条件表达清楚的就不要用跳转语句。比如找到就停可以用 break但跳过偶数完全可以把条件写进循环里不一定要 continue。六、第四课就该养成的习惯习惯一if 和循环一律带大括号。 省大括号带来的悬挂 else 和后续加代码时的逻辑错代价远大于那两行括号。习惯二写循环先写四要素再写循环体。 初始化、条件、更新先想清楚循环体最后填能避免大部分死循环和差一次的问题。习惯三边界值手动模拟一遍。 写完循环拿最小值和最大值各代进去走一遍确认次数对。这个动作花不了一分钟能省下半小时调试。习惯四复杂条件抽成布尔变量。 条件表达式太长时拆成几个有名字的布尔变量代码可读性立刻上一个台阶也方便调试时逐个检查。七、课后自测答案在下一课笔记里1. 并列的多个 if 和 else if 链在什么情况下结果不同举一个具体场景。2. switch 的穿透现象是什么原因造成的什么情况下可以故意利用它3. while 和 do-while 的本质区别是什么各举一个适合用的场景。4. 循环条件写小于和小于等于怎么快速判断哪个对---下一篇预告数组——一维数组的声明、初始化、遍历以及那个让无数人栽跟头的下标越界。第四课建立的边界意识到第五课会直接派上用场。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询