news 2026/8/28 14:10:03

java分支与循环

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java分支与循环

Java 分支与循环是 Java 基础语法中最核心的部分,几乎所有程序逻辑都依赖它们。
分支(选择结构)决定“走哪条路”,循环(迭代结构)决定“重复做多少次”。

下面从语法 → 特点 → 使用场景 → 代码示例 → 易错点完整梳理,适合零基础到面试复习。

1. 分支结构(选择结构)

Java 提供两种主要分支方式:if…else(条件判断)和switch(多分支等值匹配)。

1.1 if 语句(最常用)
形式特点适用场景执行次数
if单分支只需判断是否做某事0 或 1 次
if…else二选一两种互斥情况必执行 1 次
if…else if…else多条件判断(顺序匹配)多档次判断(如成绩分级)0~n 次

代码示例

intscore=85;if(score>=90){System.out.println("优秀");}elseif(score>=80){System.out.println("良好");}elseif(score>=60){System.out.println("及格");}else{System.out.println("不及格");}

三元运算符(if…else 的简写形式)

// 格式:条件 ? 表达式1 : 表达式2Stringresult=score>=60?"及格":"不及格";intmax=a>b?a:b;
1.2 switch 语句(JDK 14+ 增强)

传统 switch(JDK 7 前只支持 int、byte、short、char)

intday=3;StringdayName;switch(day){case1:dayName="星期一";break;case2:dayName="星期二";break;// ...default:dayName="非法日期";}

switch 穿透(不写 break 会继续执行下一个 case)

JDK 12+ switch 表达式(推荐,带返回值,更安全)

StringdayName=switch(day){case1->"星期一";case2->"星期二";case3,4,5->"工作日";// 多值合并(JDK 14+)case6,7->"周末";default->"非法";};

支持类型(2025 现状):

  • byte, short, char, int
  • 包装类(Byte, Short, Character, Integer)
  • String(JDK7+)
  • enum(枚举)
  • 不能用 long、float、double、boolean

2. 循环结构(重复执行)

Java 有四种循环:for(最常用)、whiledo-whilefor-each(增强 for)

循环类型特点适用场景先判断还是先执行
for计数循环,结构清晰已知循环次数先判断
while先判断后执行不确定循环次数先判断
do-while先执行后判断,至少执行一次至少要执行一次的情况(如菜单)后判断
for-each专门遍历数组/集合只读遍历集合/数组
2.1 for 循环(最常用)
// 经典格式for(inti=0;i<10;i++){System.out.println(i);// 0~9}// 求 1~100 的和intsum=0;for(inti=1;i<=100;i++){sum+=i;}System.out.println("1+2+...+100 = "+sum);// 5050
2.2 while 循环
inti=1;intsum=0;while(i<=100){sum+=i;i++;}System.out.println(sum);// 5050

死循环写法(小心使用)

while(true){// 通常配合 break 使用}
2.3 do-while 循环(至少执行一次)
intnum;do{System.out.print("请输入1~10之间的数字:");num=scanner.nextInt();}while(num<1||num>10);System.out.println("你输入了合法数字:"+num);
2.4 增强 for 循环(for-each)
int[]arr={10,20,30,40};// 只读遍历for(intnum:arr){System.out.println(num);}// 遍历集合List<String>list=Arrays.asList("A","B","C");for(Strings:list){System.out.println(s);}

注意:for-each 不能修改元素本身(基本类型),引用类型可以改对象内容。

3. 循环控制语句(break、continue、return)

语句作用适用范围常用场景
break立即跳出当前循环for/while/do-while/switch找到目标后结束循环
continue跳过本次循环,进入下一次for/while/do-while过滤不符合条件的数据
return结束整个方法(包括循环)方法内提前返回结果

示例

for(inti=1;i<=10;i++){if(i==5){continue;// 跳过 5}if(i==8){break;// 遇到 8 直接结束循环}System.out.print(i+" ");// 输出 1 2 3 4 6 7}

4. 经典练习题(建议手写)

  1. 输出 1~100 之间所有奇数之和
  2. 打印 9×9 乘法表(双重 for 循环)
  3. 猜数字游戏(do-while + 随机数)
  4. 统计字符串中每个字符出现次数(for-each + switch 或 Map)
  5. 求 1~100 内所有质数(for + 内层判断)

5. 易错点 & 面试高频总结

  • if 后面不要加分号if (a > b); { ... }会导致 if 体为空
  • switch 忘记 break→ 导致 case 穿透
  • while(true) 死循环→ 忘记 break 或条件变化
  • for 循环中修改循环变量→ 容易死循环或跳跃
  • 三元运算符嵌套→ 可读性差,建议用 if
  • for-each 不能用 break 修改集合(ConcurrentModificationException)

一句话记忆

  • 分支:if 看条件,switch 看值
  • 循环:for 数得清,while 看条件,do-while 至少一次
  • 控制:break 跳出,continue 跳过,return 结束方法

有哪一部分想看更详细的代码示例(比如九九乘法表、质数判断、猜数字完整版),或者想练习特定题目,我可以继续给你出题和解析!加油!

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

实战案例:51单片机低功耗场景下的简易滤波实现

作为嵌入式工程师或电子信息专业学习者&#xff0c;你大概率遇到过这样的实操困境&#xff1a;用51单片机开发低功耗项目&#xff08;如电池供电的温湿度采集、人体感应模块&#xff09;&#xff0c;硬件接线无误&#xff0c;但传感器采集的数据始终飘忽不定——温度忽高忽低、…

作者头像 李华
网站建设 2026/8/23 9:02:20

计算机毕业设计|基于springboot + vue电商系统(源码+数据库+文档)

电商系统 目录 基于springboot vue电商系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue电商系统 一、前言 博主介绍&#xff1a;✌️大厂码农|…

作者头像 李华
网站建设 2026/8/27 21:12:53

HoRain云--Linux下MySQL远程连接配置全攻略

&#x1f3ac; HoRain云小助手&#xff1a;个人主页 &#x1f525; 个人专栏: 《Linux 系列教程》《c语言教程》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站&#xff0c;性价比超高&#xff0c;大内存超划算&#xff01;…

作者头像 李华
网站建设 2026/8/27 14:01:58

百考通AI:答辩PPT一键生成,让你的学术成果惊艳全场

答辩场上的十分钟&#xff0c;是你数月乃至数年学术成果的集中展示。一份逻辑清晰、风格专业的PPT&#xff0c;不仅能帮你精准传递研究价值&#xff0c;更能让评委眼前一亮。百考通AI&#xff08;https://www.baikaotongai.com&#xff09;的答辩PPT生成功能&#xff0c;正是为…

作者头像 李华