news 2026/7/15 4:35:47

Java流程控制:从条件判断到循环遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java流程控制:从条件判断到循环遍历

Java 流程控制:从条件判断到循环遍历(核心总结 + 实战要点)

Java 的流程控制语句主要分为三大类:

  1. 条件判断(选择结构)
  2. 循环结构(重复执行)
  3. 跳转语句(控制流程走向)

下面按重要程度和使用频率逐一讲解,附带常见误区和最佳实践。

一、条件判断(选择结构)

1. if 语句(最常用)
// 基本形式if(条件){// 条件为 true 时执行}// 带 elseif(条件){// true}else{// false}// 多分支if(条件1){// ...}elseif(条件2){// ...}elseif(条件3){// ...}else{// 都不满足}

注意事项

  • 条件必须是boolean类型(不能写if (a = 5)
  • 大括号{}强烈建议始终写上,即使只有一行代码(防止后续维护出错)

经典错误示例(新手高频坑):

intscore=85;if(score>=90)System.out.println("优秀");System.out.println("恭喜!");// 这行无条件执行!!!

正确写法:加{}或写成一行

2. switch 语句(多分支选择)

JDK 早期版本(经典写法)

intday=3;switch(day){case1:System.out.println("星期一");break;case2:System.out.println("星期二");break;default:System.out.println("其他");break;}

JDK 12+ 增强版(推荐使用)→ switch 表达式(更简洁)

Stringresult=switch(day){case1,2,3,4,5->"工作日";case6,7->"周末";default->"非法输入";};

switch 表达式特点

  • 使用->(箭头语法)
  • 自动结束(不需要 break)
  • 可以直接赋值给变量
  • 支持yield返回值(更复杂情况)
Stringdesc=switch(score/10){case10,9->"优秀";case8->"良好";case7->"中等";default->{yield"不及格";// 多语句时用 yield}};

二、循环结构(重复执行)

1. while 循环(先判断后执行)
inti=1;while(i<=10){System.out.println(i);i++;}

适用场景:不知道要循环多少次(比如读文件、等待输入)

2. do-while 循环(先执行后判断)
inti=1;do{System.out.println(i);i++;}while(i<=10);

特点至少执行一次(即使条件一开始就不成立)

经典使用场景:菜单选择系统(先显示菜单再判断用户输入)

3. for 循环(最常用,结构最清晰)

传统 for 循环

for(inti=0;i<10;i++){System.out.println(i);}

增强 for 循环(for-each)—— 遍历集合或数组首选

int[]arr={10,20,30,40};for(intnum:arr){System.out.println(num);}List<String>names=Arrays.asList("张三","李四","王五");for(Stringname:names){System.out.println(name);}

for 循环的几种常见写法对比

写法适用场景可否修改循环变量推荐指数
for (int i = 0; i < n; i++)需要索引、计数、步长控制可以★★★★★
for (int i = n-1; i >= 0; i--)逆序遍历可以★★★★☆
for (元素 : 集合/数组)只读遍历,不需要索引不能修改索引★★★★★
for(;;)死循环(配合 break 使用)★★★☆☆

三、跳转语句(改变正常执行流程)

语句作用常用场景注意事项
break跳出当前循环(单层)提前结束循环可配合标签跳出多层循环
continue跳过本次循环,进入下一次循环满足条件时跳过本次剩余代码只影响当前循环层
return结束整个方法,返回结果(或无返回)方法提前返回在循环中使用会直接结束方法

带标签的 break / continue(少用,但能解决嵌套循环问题)

outer:for(inti=1;i<=5;i++){for(intj=1;j<=5;j++){if(j==3){breakouter;// 直接跳出两层循环// continue outer; // 跳到外层循环下一轮}System.out.println(i+"-"+j);}}

四、常见面试 / 易错点速记

  1. if后面不要写分号;
    if (a > b); { ... }→ 大括号内容无条件执行

  2. switch 漏写 break →case 穿透(有时故意用,有时是 Bug)

  3. for 循环中修改集合(add/remove) →ConcurrentModificationException

    正确做法

    • 用迭代器删除:iterator.remove()
    • 收集要删除的元素后统一删除
    • for (int i = list.size()-1; i >= 0; i--)逆序删除
  4. while(true) 死循环忘记 break

  5. 增强 for 循环中不能修改集合结构

五、快速练习题(建议动手写)

  1. 用 switch 表达式实现输入 1~12 返回对应月份的英文
  2. 打印 1~100 内所有 3 的倍数或 5 的倍数(用 continue 跳过不符合的)
  3. 用嵌套循环打印 9×9 乘法表
  4. 统计字符串中每个字符出现的次数(用数组或 HashMap)
  5. 求 1~1000 内所有“水仙花数”(三位数,每位数字立方和等于本身)

如果你想针对某个语句深入讲解(比如 switch 表达式的所有用法、for 循环的性能细节、多层循环的优化等),或者需要某道题的参考答案,可以直接告诉我,我继续展开。

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

【Java】深入理解Java语言的重要概念

【Java】深入理解Java语言的重要概念&#xff08;核心精华版&#xff09; 这篇文章不是“入门语法”&#xff0c;而是帮助你真正理解 Java 这门语言的设计思想和底层机制。掌握这些概念&#xff0c;能让你从“会写 Java”进阶到“懂 Java”。 我将按重要程度 关联性整理成 8…

作者头像 李华
网站建设 2026/7/10 3:45:27

【YOLOv12多模态涨点改进】独家创新首发 | TGRS 2025 | 引入CDFIM跨模态差异特征交互模块,通过差异特征提取和融合增强机制,减少了冗余信息,显著提升了小目标的检测精度,高效涨点改进

一、本文介绍 🔥本文给大家介绍使用 CDFIM跨模态差异特征交互模块改进 YOLOv12 多模态目标检测,通过有效的差异特征提取和增强,显著提升了小目标的检测精度,特别是在复杂背景和低对比度环境下。该模块通过残差加法和通道与空间注意力机制,增强了可见光与红外模态之间的互…

作者头像 李华
网站建设 2026/7/9 19:19:05

破局AI算力生态:华为CANN的开源之路与一体化平台新范式

在人工智能浪潮席卷全球的今天,算力与生态已成为决定技术发展高度的两大基石。长期以来,英伟达凭借其强大的GPU硬件与封闭的CUDA软件生态,构筑了近乎垄断的“护城河”。如何打破这一壁垒,构建自主、开放、繁荣的AI计算新生态,成为产业界共同面临的挑战。2025年,随着华为将…

作者头像 李华
网站建设 2026/7/10 3:46:39

Python 数据结构(线性表):从理论到实践

一、数组与列表&#xff1a;Python的基础线性结构1.1 概念详解数组 是一种线性数据结构&#xff0c;使用连续的内存空间存储相同类型的元素。在Python中&#xff0c;虽然没有传统意义上的静态数组&#xff0c;但列表(list)可以看作是动态数组的实现。Python列表的核心特性&…

作者头像 李华
网站建设 2026/7/9 14:33:23

轻量级容器环境Colima

Colima是一个在macOS&#xff08;和Linux&#xff09;上运行容器的最小化设置工具&#xff0c;它通过在虚拟机中运行容器&#xff0c;为开发者提供了一个轻量级的本地容器环境。 诞生背景&#xff1a;为什么需要Colima&#xff1f; Colima源于Lima项目&#xff0c;该项目由一群…

作者头像 李华
网站建设 2026/7/13 9:51:46

征程 6 | power management sample

1. 功能概述 本文通过示例演示如何通过相关接口对启动标志进行读写&#xff0c;以及对 main 域电源进行控制与查询。相关 API 定义&#xff0c;请查询 电源管理用户手册 API 部分 。 2. main 域上下电及状态查询示例代码 请参考版本中 Service/Cmd_Utility/power_sample_cmd…

作者头像 李华