news 2026/4/16 17:11:40

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/4/16 15:53:22

塘沽潮汐表查询2026-02-07

位置&#xff1a;塘沽&#xff0c;日期&#xff1a;2026-02-07&#xff0c;农历&#xff1a;乙巳[蛇]年十二(腊)月二十&#xff0c;星期&#xff1a;星期六&#xff0c;潮汐类型&#xff1a;大潮活汛 最高水位&#xff1a;345.00cm&#xff0c;最低水位&#xff1a;74.00cm&…

作者头像 李华
网站建设 2026/4/16 11:04:13

用过才敢说! 更适合继续教育的降AIGC平台,千笔AI VS 知文AI

在AI技术迅速发展的今天&#xff0c;越来越多的学生和研究人员开始借助AI工具提升论文写作效率。然而&#xff0c;随着学术审查标准的不断提高&#xff0c;AI生成内容的痕迹越来越容易被识别&#xff0c;论文中的“AI率”问题也逐渐成为困扰众多学子的难题。尤其是在继续教育领…

作者头像 李华
网站建设 2026/4/16 12:19:22

Banana Slides 深度解析:PPT 生成引擎与逆向工程机制

Banana Slides 深度解析&#xff1a;PPT 生成引擎与逆向工程机制 在生成式 AI 领域&#xff0c;文本生成图片的质量已达到极高水平&#xff0c;但生成的图片往往是扁平的位图 (Bitmap)&#xff0c;无法进行二次编辑。对于 PPT 这种对结构化和可编辑性要求极高的场景&#xff0…

作者头像 李华
网站建设 2026/4/16 8:53:29

“红包口令/邀请码” 格式,常见于一些 App 的营销推广链接

“红包口令/邀请码” 格式&#xff0c;常见于一些 App 的营销推广链接。这种字符串的生成算法通常是&#xff1a; 特征分析 UA5070 可能是用户ID或渠道标识V73:/ 可能是版本标识G2Z8H4XLTC 看起来像是Base36或Base62编码的随机字符串 可能的生成算法 用户ID 随机码 校验位时间…

作者头像 李华