news 2026/4/18 9:13:28

Java流程控制:从条件判断到循环遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java流程控制:从条件判断到循环遍历

Java 流程控制:从条件判断到循环遍历(核心总结 + 实战要点)

Java 的流程控制语句主要分为三大类:

  1. 条件判断(选择结构)
  2. 循环结构(重复执行)
  3. 跳转语句(控制流程走向)

下面按重要程度和使用频率逐一讲解,附带常见误区和最佳实践。

一、条件判断(选择结构)

1. if 语句(最常用)
// 基本形式if(条件){// 条件为 true 时执行}// 带 elseif(条件){// true}else{// false}// 多分支if(条件1){// ...}elseif(条件2){// ...}elseif(条件3){// ...}else{// 都不满足}

注意事项

  • 条件必须是boolean类型(不能写if (a = 5)
  • 大括号{}强烈建议始终写上,即使只有一行代码(防止后续维护出错)

经典错误示例(新手高频坑):

intscore=85;if(score>=90)System.out.println("优秀");System.out.println("恭喜!");// 这行无条件执行!!!

正确写法:加{}或写成一行

2. switch 语句(多分支选择)

JDK 早期版本(经典写法)

intday=3;switch(day){case1:System.out.println("星期一");break;case2:System.out.println("星期二");break;default:System.out.println("其他");break;}

JDK 12+ 增强版(推荐使用)→ switch 表达式(更简洁)

Stringresult=switch(day){case1,2,3,4,5->"工作日";case6,7->"周末";default->"非法输入";};

switch 表达式特点

  • 使用->(箭头语法)
  • 自动结束(不需要 break)
  • 可以直接赋值给变量
  • 支持yield返回值(更复杂情况)
Stringdesc=switch(score/10){case10,9->"优秀";case8->"良好";case7->"中等";default->{yield"不及格";// 多语句时用 yield}};

二、循环结构(重复执行)

1. while 循环(先判断后执行)
inti=1;while(i<=10){System.out.println(i);i++;}

适用场景:不知道要循环多少次(比如读文件、等待输入)

2. do-while 循环(先执行后判断)
inti=1;do{System.out.println(i);i++;}while(i<=10);

特点至少执行一次(即使条件一开始就不成立)

经典使用场景:菜单选择系统(先显示菜单再判断用户输入)

3. for 循环(最常用,结构最清晰)

传统 for 循环

for(inti=0;i<10;i++){System.out.println(i);}

增强 for 循环(for-each)—— 遍历集合或数组首选

int[]arr={10,20,30,40};for(intnum:arr){System.out.println(num);}List<String>names=Arrays.asList("张三","李四","王五");for(Stringname:names){System.out.println(name);}

for 循环的几种常见写法对比

写法适用场景可否修改循环变量推荐指数
for (int i = 0; i < n; i++)需要索引、计数、步长控制可以★★★★★
for (int i = n-1; i >= 0; i--)逆序遍历可以★★★★☆
for (元素 : 集合/数组)只读遍历,不需要索引不能修改索引★★★★★
for(;;)死循环(配合 break 使用)★★★☆☆

三、跳转语句(改变正常执行流程)

语句作用常用场景注意事项
break跳出当前循环(单层)提前结束循环可配合标签跳出多层循环
continue跳过本次循环,进入下一次循环满足条件时跳过本次剩余代码只影响当前循环层
return结束整个方法,返回结果(或无返回)方法提前返回在循环中使用会直接结束方法

带标签的 break / continue(少用,但能解决嵌套循环问题)

outer:for(inti=1;i<=5;i++){for(intj=1;j<=5;j++){if(j==3){breakouter;// 直接跳出两层循环// continue outer; // 跳到外层循环下一轮}System.out.println(i+"-"+j);}}

四、常见面试 / 易错点速记

  1. if后面不要写分号;
    if (a > b); { ... }→ 大括号内容无条件执行

  2. switch 漏写 break →case 穿透(有时故意用,有时是 Bug)

  3. for 循环中修改集合(add/remove) →ConcurrentModificationException

    正确做法

    • 用迭代器删除:iterator.remove()
    • 收集要删除的元素后统一删除
    • for (int i = list.size()-1; i >= 0; i--)逆序删除
  4. while(true) 死循环忘记 break

  5. 增强 for 循环中不能修改集合结构

五、快速练习题(建议动手写)

  1. 用 switch 表达式实现输入 1~12 返回对应月份的英文
  2. 打印 1~100 内所有 3 的倍数或 5 的倍数(用 continue 跳过不符合的)
  3. 用嵌套循环打印 9×9 乘法表
  4. 统计字符串中每个字符出现的次数(用数组或 HashMap)
  5. 求 1~1000 内所有“水仙花数”(三位数,每位数字立方和等于本身)

如果你想针对某个语句深入讲解(比如 switch 表达式的所有用法、for 循环的性能细节、多层循环的优化等),或者需要某道题的参考答案,可以直接告诉我,我继续展开。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:38:08

【YOLOv10多模态涨点改进】独家创新首发 | TGRS 2025 | 引入CDFIM跨模态差异特征交互模块,通过差异特征提取和融合增强机制,减少了冗余信息,显著提升了小目标的检测精度,高效涨点改进

一、本文介绍 🔥本文给大家介绍使用 CDFIM跨模态差异特征交互模块改进 YOLOv10 多模态目标检测,通过有效的差异特征提取和增强,显著提升了小目标的检测精度,特别是在复杂背景和低对比度环境下。该模块通过残差加法和通道与空间注意力机制,增强了可见光与红外模态之间的互…

作者头像 李华
网站建设 2026/4/18 3:34:57

【YOLOv10多模态涨点改进】独家创新首发 | TGRS 2025 | 引入FDFEF频域特征增强融合模块,通过减少背景噪声和提高目标特征的可区分性,适用水下遥感图像实例分割、小目标检测任务

一、本文介绍 🔥本文给大家介绍使用 FDFEF频域特征增强融合模块 改进 YOLOv10 多模态网络模型,能够通过频域特征增强和模态特征交互显著提高小目标检测精度,特别是在复杂背景和低对比度环境下。FDFEF 通过频域增强优化了可见光与红外图像之间的特征融合,减少了背景干扰和…

作者头像 李华
网站建设 2026/4/18 3:35:29

实测6款AI降AIGC率工具,付费版更优

哈喽&#xff0c;大家好&#xff01;我是你们的“降重老司机”&#xff0c;一个深耕AI降重和降AIGC率领域多年的博主。 今天我们来聊聊一个现实问题&#xff1a;写论文时用了AI工具&#xff0c;结果AIGC率&#xff08;AI生成内容检测率&#xff09;飙升&#xff0c;学校查重系…

作者头像 李华
网站建设 2026/4/18 3:33:12

2025胖东来年终奖,涨到怀疑人生

年关岁末&#xff0c;谁不羡慕胖东来的员工&#xff1f;别家老板还在画年终奖大饼&#xff0c;胖东来直接用真金白银宠员工——2025年营收暴涨38.7%达235亿&#xff0c;于东来预估净利润15亿左右&#xff0c;而按照95%利润分给员工的规矩&#xff0c;光利润分配就超10个亿&…

作者头像 李华
网站建设 2026/4/18 3:29:18

五年过去了,为什么还有人在用Mate30 Pro?

坐地铁的时候总能看见一些熟悉的面孔&#xff0c;不是真人&#xff0c;是手机。上个月在车厢里无意瞟了一圈&#xff0c;前后几排人&#xff0c;居然有两个拿着Mate30Pro。说实话&#xff0c;这手机都快五年了&#xff0c;2019年出的机型&#xff0c;按现在手机圈的更新速度&am…

作者头像 李华
网站建设 2026/4/18 3:47:47

深度优先搜索(dfs)与广度优先搜索(bfs)

深度优先搜索&#xff08;dfs&#xff09; 1.深度优先搜索的原理 深度优先搜索&#xff0c;顾名思义&#xff0c;搜到底才退回来&#xff0c;我们可以这么比喻&#xff1a; 这里有一个迷宫&#xff0c; 你会怎么走&#xff1f;是不是直接直走&#xff0c;然后右转&#xff…

作者头像 李华