news 2026/6/21 7:17:44

Java中的循环

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java中的循环

在 Java 编程中,循环(Loop)是控制语句的重要组成部分,用于重复执行一段代码。合理使用循环可以大幅减少重复代码,提高程序的可读性和维护性。Java 提供了三种基本循环结构: for 、 while 、 do-while ,以及在集合和数组遍历中常用的“增强 for 循环”(for-each)。下面分别从语法、执行流程、适用场景和常见注意事项展开说明。

一、for 循环

1. 基本语法

java

for (初始化表达式; 条件表达式; 更新表达式) {

// 循环体

}

- 初始化表达式:在循环开始前执行一次,通常用于声明和初始化循环变量,例如 int i = 0 。

- 条件表达式:每次循环开始前判断,结果为 true 才执行循环体,否则退出循环。

- 更新表达式:每次循环体执行完后执行,通常用于更新循环变量,例如 i++ 。

2. 执行流程

1. 执行初始化表达式。

2. 判断条件表达式:

- 若为 true ,执行循环体;

- 若为 false ,结束循环。

3. 循环体执行完后,执行更新表达式。

4. 回到第 2 步,重复判断。

3. 示例:遍历数组

java

int[] numbers = {1, 2, 3, 4, 5};

for (int i = 0; i < numbers.length; i++) {

System.out.println(numbers[i]);

}

4. 常见变体

- 省略初始化、条件或更新表达式(但分号不能省略):

java

int i = 0;

for (; i < 10; ) {

System.out.println(i);

i++;

}

- 无限循环(条件恒为 true ):

java

for (;;) {

// 需要在循环体内通过 break 退出

}

二、while 循环

1. 基本语法

java

while (条件表达式) {

// 循环体

}

2. 执行流程

1. 判断条件表达式。

2. 若为 true ,执行循环体,然后回到第 1 步。

3. 若为 false ,结束循环。

3. 示例:读取用户输入直到输入 0

java

Scanner scanner = new Scanner(System.in);

int x;

while ((x = scanner.nextInt()) != 0) {

System.out.println("你输入了:" + x);

}

4. 与 for 循环的对比

- while 更适合“不确定循环次数”的场景,只知道结束条件。

- for 更适合“已知循环次数或遍历范围”的场景,如数组、集合的索引遍历。

三、do-while 循环

1. 基本语法

java

do {

// 循环体

} while (条件表达式);

2. 执行流程

1. 先执行一次循环体。

2. 再判断条件表达式:

- 若为 true ,回到第 1 步继续执行;

- 若为 false ,结束循环。

3. 特点

- 至少执行一次循环体,即使条件一开始就为 false 。

- 适用于“必须先执行一次,再根据结果决定是否继续”的场景,如菜单选择、输入校验等。

4. 示例:菜单循环

java

Scanner scanner = new Scanner(System.in);

int choice;

do {

System.out.println("1. 新增");

System.out.println("2. 删除");

System.out.println("0. 退出");

System.out.print("请选择:");

choice = scanner.nextInt();

// 根据 choice 处理业务逻辑

} while (choice != 0);

四、增强 for 循环(for-each)

1. 基本语法

java

for (元素类型 变量名 : 数组或 Iterable 对象) {

// 循环体

}

2. 适用范围

- 数组: int[] 、 String[] 等。

- 实现了 Iterable 接口的集合类: List 、 Set 等。

3. 示例:遍历 List

java

List<String> list = Arrays.asList("A", "B", "C");

for (String s : list) {

System.out.println(s);

}

4. 优点与局限

- 优点:

- 语法简洁,可读性好。

- 不需要手动管理索引,减少数组越界错误。

- 局限:

- 无法直接获取当前索引(如需索引,仍需使用普通 for 循环或手动维护计数器)。

- 不适合在循环中修改集合结构(如增删元素),否则可能抛出 ConcurrentModificationException 。

五、循环控制语句:break 与 continue

1. break

- 作用:立即终止当前所在的循环或 switch 语句。

- 示例:找到第一个偶数就退出循环

java

int[] numbers = {1, 3, 5, 4, 7};

for (int x : numbers) {

if (x % 2 == 0) {

System.out.println("找到第一个偶数:" + x);

break;

}

}

2. continue

- 作用:跳过本次循环剩余部分,直接进入下一次循环。

- 示例:只打印奇数

java

for (int i = 0; i < 10; i++) {

if (i % 2 == 0) {

continue;

}

System.out.println(i);

}

3. 带标签的 break / continue(了解)

- 可以跳出或跳过嵌套循环中的外层循环。

java

outer:

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

if (i == 1 && j == 1) {

break outer; // 跳出外层循环

}

System.out.println(i + "," + j);

}

}

六、循环常见问题与最佳实践

1. 避免死循环

- 死循环示例:

java

while (true) {

// 没有退出条件

}

for (int i = 0; i < 10; ) {

System.out.println(i);

// 忘记 i++

}

- 避免方法:

- 确保条件表达式最终会变为 false 。

- 循环变量更新逻辑正确。

- 在复杂循环中加入调试输出或日志,观察循环变量变化。

2. 循环变量的作用域

- 在 for 循环中声明的变量只在循环体内有效:

java

for (int i = 0; i < 5; i++) {

System.out.println(i);

}

// System.out.println(i); // 编译错误,i 未定义

- 如需在循环外使用该变量,应在循环外声明。

3. 性能与可读性平衡

- 对于简单遍历,优先使用增强 for 循环。

- 对于需要索引、复杂条件或性能敏感场景,使用普通 for 循环。

- 避免过深的嵌套循环(一般建议不超过 3 层),可通过抽取方法、拆分逻辑来优化。

七、小结

- Java 提供了 for 、 while 、 do-while 三种基本循环结构,以及增强 for 循环用于遍历。

- for 适合已知次数或范围的循环; while 适合条件控制的循环; do-while 适合至少执行一次的场景。

- break 用于终止循环, continue 用于跳过本次循环。

- 使用循环时要注意避免死循环、合理控制循环变量的作用域,并在性能与可读性之间做平衡。

掌握这些循环相关的知识点,是编写清晰、高效 Java 代码的基础。

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

EmotiVoice与ASR系统联用案例:构建闭环语音交互平台

EmotiVoice与ASR系统联用案例&#xff1a;构建闭环语音交互平台 在智能设备日益渗透日常生活的今天&#xff0c;用户对“会说话”的机器已不再满足于简单的应答。他们希望听到的不只是信息&#xff0c;而是带有情绪、有温度、甚至像熟人一样的回应。这种期待正在推动语音技术从…

作者头像 李华
网站建设 2026/6/19 21:32:50

EmotiVoice语音合成灾难恢复预案:保障业务连续性

EmotiVoice语音合成灾难恢复预案&#xff1a;保障业务连续性 在虚拟偶像直播正酣、智能客服全天候响应的今天&#xff0c;一句“正在加载中”的延迟或音色突变的语音输出&#xff0c;都可能让用户瞬间出戏。对于依赖高表现力语音交互的系统而言&#xff0c;语音合成服务不仅是功…

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

EmotiVoice与Azure TTS、Google Cloud TTS功能对比

EmotiVoice与Azure TTS、Google Cloud TTS功能对比 在语音交互日益普及的今天&#xff0c;文本转语音&#xff08;TTS&#xff09;技术早已不再是简单的“把字念出来”。从智能助手到虚拟偶像&#xff0c;从有声书到医疗陪护&#xff0c;用户期待的不仅是清晰发音&#xff0c;更…

作者头像 李华
网站建设 2026/6/19 1:41:52

EmotiVoice语音合成安全性评估:隐私保护与数据合规

EmotiVoice语音合成安全性评估&#xff1a;隐私保护与数据合规 在智能语音助手、虚拟偶像和个性化有声内容日益普及的今天&#xff0c;用户对“像人一样说话”的AI系统期待越来越高。EmotiVoice正是这样一款应运而生的开源TTS引擎——它不仅能用几秒钟的声音样本克隆出高度还原…

作者头像 李华
网站建设 2026/6/21 4:07:27

EmotiVoice语音情感粒度控制:细至微妙的语气波动

EmotiVoice语音情感粒度控制&#xff1a;细至微妙的语气波动 在虚拟偶像的一场直播中&#xff0c;观众突然提问&#xff1a;“你真的开心吗&#xff1f;”屏幕前的数字人微微停顿&#xff0c;语调轻柔下沉&#xff0c;带着一丝不易察觉的迟疑回应&#xff1a;“我当然想让你看到…

作者头像 李华
网站建设 2026/6/21 5:38:47

如何让普通设备获得顶尖视觉AI能力?MiniCPM-V 4.5实战深度解析

如何让普通设备获得顶尖视觉AI能力&#xff1f;MiniCPM-V 4.5实战深度解析 【免费下载链接】OmniLMM 项目地址: https://gitcode.com/gh_mirrors/om/OmniLMM 在当今AI技术快速发展的时代&#xff0c;视觉理解能力已成为衡量智能系统成熟度的重要指标。MiniCPM-V 4.5作为…

作者头像 李华