0

0

在Java中如何定义循环结构_Javaforwhile循环基础讲解

P粉602998670

P粉602998670

发布时间:2026-02-01 16:14:59

|

343人浏览过

|

来源于php中文网

原创

Java仅有for、while、do-while三种标准循环,无loop/repeat;for适用于已知次数或遍历,三部分用分号分隔;while先判后执,适合条件驱动;do-while先执后判,至少执行一次;增强for简化遍历但无法改集合或获索引。

在java中如何定义循环结构_javaforwhile循环基础讲解

Java 中只有 forwhiledo-while 三种标准循环结构,不存在“loop”或“repeat”这类关键字;写错语法或混淆执行时机,是初学者最常卡住的地方。

for 循环:适合已知迭代次数或遍历集合

for 循环由初始化、条件判断、更新三部分组成,全部写在括号内,用分号分隔。最容易出错的是把分号写成逗号,或者在循环体里重复修改计数器导致死循环。

常见错误现象:for (int i = 0; i (逗号应为分号);for (int i = 0; i (i 被加两次,跳过偶数)。

使用场景:

立即学习Java免费学习笔记(深入)”;

  • 遍历数组:for (int i = 0; i
  • 倒序打印:for (int i = list.size() - 1; i >= 0; i--)
  • 嵌套循环控制行列:for (int row = 0; row

while 循环:适合条件驱动、次数不确定的场景

while 先判断后执行,如果初始条件不满足,循环体一次都不会运行。忘记在循环体内更新判断变量,会导致无限循环——这是调试时最常翻车的点。

典型误用:

int x = 5;
while (x > 0) {
    System.out.println(x);
    // 忘记写 x--;
}

适用情况:

VidAU
VidAU

VidAU AI 是一款AI驱动的数字人视频创作平台,旨在简化视频内容创作流程

下载
  • 读取用户输入直到输入合法:while (!scanner.hasNextInt()) { ... }
  • 处理队列直到为空:while (!queue.isEmpty()) { process(queue.poll()); }
  • 轮询状态变化:while (status != READY) { checkStatus(); Thread.sleep(100); }

do-while 循环:保证至少执行一次

do-while 是唯一一个先执行、再判断的循环,结尾必须带分号。它天然适合“先做再问”的逻辑,比如菜单交互、密码重试。

容易忽略的细节:

  • 条件表达式写在 } 后面,不是括号里:do { ... } while (condition);
  • 条件中不能直接用未初始化变量:int input; do { input = scanner.nextInt(); } while (input != 0); 是安全的,但若把 input 声明放在 while 后就不合法
  • while 性能无差异,只是语义不同;JVM 编译后字节码结构也基本一致

增强 for 循环(for-each):简化集合/数组遍历,但有局限

语法是 for (Type var : collection),底层调用 Iterator 或数组索引。它不能获取当前下标,也不能在遍历时删除元素(会抛 ConcurrentModificationException)。

不能用的场景:

  • 需要修改集合本身:for (String s : list) { list.remove(s); } → 错误
  • 需要知道索引位置:for (int i = 0; i 才合适
  • 遍历多个数组并行操作:for (int i = 0; i 无法用 for-each 替代

安全用法示例:

List names = Arrays.asList("Alice", "Bob", "Charlie");
for (String name : names) {
    System.out.println(name.toUpperCase());
}

真正难的不是记住语法,而是判断该用哪个——关键看「是否需要下标」「是否确定执行次数」「是否允许零次执行」。很多人写完发现逻辑错,回头一看其实是选错了循环类型,而不是代码写错了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

503

2023.08.02

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

98

2023.09.25

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

503

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

545

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

113

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

200

2025.08.29

length函数用法
length函数用法

length函数用于返回指定字符串的字符数或字节数。可以用于计算字符串的长度,以便在查询和处理字符串数据时进行操作和判断。 需要注意的是length函数计算的是字符串的字符数,而不是字节数。对于多字节字符集,一个字符可能由多个字节组成。因此,length函数在计算字符串长度时会将多字节字符作为一个字符来计算。更多关于length函数的用法,大家可以阅读本专题下面的文章。

928

2023.09.19

Java 并发编程高级实践
Java 并发编程高级实践

本专题深入讲解 Java 在高并发开发中的核心技术,涵盖线程模型、Thread 与 Runnable、Lock 与 synchronized、原子类、并发容器、线程池(Executor 框架)、阻塞队列、并发工具类(CountDownLatch、Semaphore)、以及高并发系统设计中的关键策略。通过实战案例帮助学习者全面掌握构建高性能并发应用的工程能力。

87

2025.12.01

go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

30

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3.1万人学习

C# 教程
C# 教程

共94课时 | 8.1万人学习

Java 教程
Java 教程

共578课时 | 54.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号