当前位置: 首页 > news >正文

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 结束方法

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

http://www.jsqmd.com/news/348959/

相关文章:

  • ceph缓存分层
  • 百考通AI:权威AIGC检测,为学术诚信保驾护航
  • 一文读懂 Java 主流编译器:特性、场景与选择指南
  • 传统成果转化困局破解之道——高校科研生态协同机制的创新实践
  • ZooKeeper 是什么?看完这篇,社招面试再也不虚
  • 高校科研转化新路径:生态协同机制助力学术产业双赢
  • 查重太高?AI检测又红了?别emo!百考通「降重+降AI」来给你论文“一键真人化+学术柔光滤镜”啦~
  • 有效运用长尾关键词优化SEO策略的实用指南
  • 查重太高?AI检测又亮红灯?别慌!百考通「降重+降AI」来给你论文“一键真人化+学术柔光滤镜”啦~
  • 无人机视角道路坑洞检测数据集VOC+YOLO格式58张1类别
  • 五大学习方法
  • 查重飙高?AI检测又拉警报?别慌!百考通「降重+降AI」来给你论文“一键真人化+学术柔光”啦~
  • 基于随机森林模型的轴承剩余寿命预测MATLAB实现!
  • 查重爆红?AI检测报警?别emo!百考通「降重+降AI」来给你论文“一键真人认证+学术柔光”啦~
  • 冷冻研磨仪国产品牌推荐,打破进口垄断的优质选择 - 品牌推荐大师1
  • Flutter-OH三方库适配代码提交指南
  • 全国锌包钢优质厂家有哪些?优先选哪些维度筛选? - 非研科技
  • 天津消防电缆生产厂家推荐:耐火、防火、阻燃、阻燃B1级、矿物质防火等电缆生产厂家推荐(2026年版) - 品牌2025
  • 查重太高?AI检测又红了?别慌!百考通「降重+降AI」来给你论文“一键真人化+学术柔光滤镜”啦~
  • 构建区域创新生态,助力科技成果转化
  • FastAPI实战:用懒加载与Lifespan优雅管理重型依赖
  • 查重爆表?AI检测又亮红灯?别崩溃!百考通「降重+降AI」来给你论文“一键真人化+学术柔光”啦~
  • 2026年2月电缆生产厂家推荐:知名的电缆生产厂家推荐、电缆生产厂家排名 - 品牌2025
  • 日常练习
  • 查重爆表?AI检测亮红灯?别慌!百考通「降重+降AI」来给你论文“一键真人化+学术美颜”啦~
  • pg连接数问题
  • 计算机毕业设计|基于springboot + vue医院管理系统(源码+数据库+文档)
  • Java和.NET的核心差异 - 实践
  • 查重太高?AI检测报警?别emo了!百考通「降重+降AI」来给你论文“一键真人认证+学术柔光滤镜”啦~
  • 2026年2月电力电缆生产厂家推荐,覆盖中低压、低压、中压、变频等电缆生产厂家名单盘点 - 品牌2025