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/10 11:07:33

SQL 性能雷区揭秘:为何阿里等大厂严禁使用 ORDER BY RAND()?

在日常开发中&#xff0c;我们常遇到“随机取几条数据”的需求&#xff0c;比如首页推荐、抽奖系统或内容轮播。许多开发者会不假思索地写出如下 SQL&#xff1a; vbnet SELECT * FROM products ORDER BY RAND() LIMIT 5; 简洁、直观、看似完美——但正是这条语句&#xff0…

作者头像 李华
网站建设 2026/6/10 11:10:24

寒假集训8——数论

P1009 [NOIP 1998 普及组] 阶乘之和题目描述用高精度计算出 S1!2!3!⋯n!&#xff08;n≤50&#xff09;。其中 ! 表示阶乘&#xff0c;定义为 n!n(n−1)(n−2)⋯1。例如&#xff0c;5!54321120。输入格式一个正整数 n。输出格式一个正整数 S&#xff0c;表示计算结果。输入输出…

作者头像 李华
网站建设 2026/6/10 13:15:59

波动即机遇:2026新能源电力交易,将“准而不稳”转化为可控风险的三大破局点

精准预测却难以稳定输出&#xff0c;这是当下新能源电力交易团队最棘手的现实困境。但最危险的地方往往蕴藏着最大的机遇。对于2026年的新能源电力交易团队而言&#xff0c;市场最令人头痛的挑战已不再是预测“不准”。随着气象大数据与AI预测模型的飞速发展&#xff0c;风电、…

作者头像 李华
网站建设 2026/6/10 15:36:30

Redis深度解析:从发展史到现代应用全景指南

Redis深度解析&#xff1a;从发展史到现代应用全景指南 引言 在当今数据驱动的时代&#xff0c;高性能缓存与数据结构服务器已成为现代应用架构的基石。Redis&#xff0c;作为这一领域的璀璨明星&#xff0c;自诞生以来便以其极致性能、丰富的数据结构和简洁的设计哲学风靡全…

作者头像 李华