news 2026/6/9 23:50:52

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/6/7 2:50:42

『n8n』对接豆包、千问、文心、Kimi等大模型

点赞 关注 收藏 学会了 整理了一个n8n小专栏&#xff0c;有兴趣的工友可以关注一下 &#x1f449; 《n8n修炼手册》 用 n8n 做自动化工作流时&#xff0c;可能会遇到一个头疼的问题&#xff1a;想调用豆包、千问、文心一言、Kimi 这些常用国产大模型&#xff0c;却发现 n8n …

作者头像 李华
网站建设 2026/6/7 7:09:29

从流水线到LOVE:一个MIPS32软核的奇幻漂流

MIPS32的CPU设计源码&#xff0c;FPGA&#xff0c;五级流水线。 语言:VerilogC汇编 硬件平台:Altera DE1/DE2 每添加新指令都有完整工程&#xff0c;最后增加了Wishbone总线并移植了ucosii内核。 可使用汇编语言或者C语言生成指令。 图为使用挂载在总线上的GPIO点亮数码管显示L…

作者头像 李华
网站建设 2026/6/7 6:17:04

2004-2024年上市公司战略激进数据

数据简介 企业战略激进度&#xff1a;计算企业六大维度的过去5年的均值(研发创新倾向、市场扩张倾向、公司成长性、公司生产效率、组织结构稳定性、公司资本密度&#xff0c;并进行赋值1-4分&#xff0c;最终汇总得到战略激进度。由于数据库的研发投入缺失严重&#xff0c;采用…

作者头像 李华
网站建设 2026/6/7 7:09:07

解决Hibernate3与Weblogic10冲突全攻略

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

作者头像 李华
网站建设 2026/6/7 6:31:44

java_vue基于springboot的社区诊所居民电子病历管理系统_fm9032h6

目录系统概述核心功能模块技术栈亮点扩展性设计开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 基于SpringBoot和Vue的社区诊所居民电子病历管理系统&#xff08;项目标识&#xff1a;fm9032h6&#xff09;是一个面向…

作者头像 李华