news 2026/5/30 16:14:30

Java 循环结构之 do-while 语句新手核心学习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 循环结构之 do-while 语句新手核心学习笔记

Java 基础极简通关前言:do-while 是 Java 循环家族中 “保底执行” 的特殊成员,核心特点是先执行、后判断,哪怕条件不满足也会执行一次循环体。这篇笔记提炼 do-while 的核心语法、执行逻辑、实战场景和避坑要点,新手 10 分钟掌握它和 while 的核心区别!

一、do-while 循环核心定位

核心特性:先执行循环体,再判断条件(循环体至少执行 1 次);适用场景:必须先执行一次的业务场景(如用户输入验证、密码重试、菜单展示);对比 while:while 是 “先判断、后执行”(可能执行 0 次),do-while 是 “先执行、后判断”(至少 1 次),两者互补覆盖所有循环需求。

二、do-while 循环基础语法(必记)

1. 标准结构

// 1. 初始化循环变量 初始化语句; do { // 2. 循环体:先执行一次,再判断条件 循环体语句; // 3. 更新循环变量(关键!避免死循环) 迭代语句; } while (条件表达式); // 注意:末尾必须加分号!

2. 核心执行流程(三步必背)

  1. 初始化:执行一次循环变量初始化(如int i = 1;);
  2. 执行循环体:不管条件是否满足,先执行一次循环体代码;
  3. 判断 + 迭代:计算条件表达式(返回 boolean 值),true 则回到循环体继续执行,false 则跳出循环;每次执行完循环体都会先更新变量,再判断条件。

3. 快速实战案例

案例 1:基础版 —— 打印 1-5 的数字
public class DoWhileDemo1 { public static void main(String[] args) { // 1. 初始化变量 int i = 1; do { // 2. 先执行循环体 System.out.println("当前数字:" + i); // 3. 迭代更新 i++; } while (i <= 5); // 后判断条件 } } // 运行结果: // 当前数字:1 // 当前数字:2 // 当前数字:3 // 当前数字:4 // 当前数字:5
案例 2:实用版 —— 密码验证(必须先提示输入)

这是 do-while 最典型的应用场景,无论密码是否正确,都要先提示用户输入一次:

import java.util.Scanner; public class DoWhileDemo2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String password; // 无需初始化密码,先执行输入 do { System.out.print("请输入登录密码:"); password = sc.next(); // 密码错误时提示 if (!password.equals("123456")) { System.out.println("密码错误,请重新输入!"); } } while (!password.equals("123456")); // 密码不对就重复 System.out.println("密码正确,登录成功!"); } } // 运行效果: // 请输入登录密码:123 // 密码错误,请重新输入! // 请输入登录密码:123456 // 密码正确,登录成功!

三、do-while vs while 核心对比(必背)

新手最容易混淆两者,一张表讲清区别:

表格

特性do-while 循环while 循环
执行顺序先执行循环体,后判断条件先判断条件,后执行循环体
执行次数至少执行 1 次条件不满足时执行 0 次
语法细节末尾必须加;无末尾分号
适用场景必须执行一次(输入验证、菜单)不确定是否执行(累加、遍历)

对比案例:条件不满足时的执行差异

// do-while:条件false,仍执行1次循环体 int a = 6; do { System.out.println("do-while执行了"); // 输出:do-while执行了 a++; } while (a <= 5); // while:条件false,循环体0次执行 int b = 6; while (b <= 5) { System.out.println("while执行了"); // 无输出 b++; }

四、新手必避 3 个高频坑

坑 1:忘记加末尾分号,编译报错

// 错误:while()后缺少分号 do { System.out.println("测试"); } while (i <= 5) // 编译报错!

解决:do-while 的while(条件)必须加英文分号;,这是语法硬性要求。

坑 2:忘记迭代语句,导致死循环

和 while 一样,do-while 缺少迭代语句会让条件永远为 true,循环无限执行:

int i = 1; do { System.out.println(i); // 缺少i++,i永远=1,条件永远true,死循环! } while (i <= 5);

解决:循环体中必须包含i++/i--等更新循环变量的代码,确保条件最终能变为 false。

坑 3:混淆执行顺序,错误选择循环类型

比如 “计算 1-100 的和”,用 do-while 虽然能实现,但逻辑上更适合用 while/for(无需保底执行);而 “用户输入验证” 用 while 则会导致首次不提示输入,逻辑错误。解决:记住核心原则 ——需要保底执行一次用 do-while,否则用 while

五、核心总结

  1. do-while 循环:先执行、后判断,循环体至少执行 1 次,末尾必须加;
  2. 核心适用场景:密码验证、菜单展示、输入提示等 “必须先执行一次” 的业务;
  3. 避坑重点:迭代语句不能漏、末尾分号不能少、根据执行需求选择循环类型。

do-while 是 while 的补充,掌握它和 while 的执行顺序差异,就能灵活应对所有循环场景。动手敲一遍密码验证的案例,就能彻底理解它的核心价值!

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

技术的便利,从来都不属于开发者

技术的便利&#xff0c;从来都不属于开发者 我们总被灌输一个共识&#xff1a;技术的发展是为了让人类更轻松。打开手机就能完成支付&#xff0c;点击鼠标就能部署应用&#xff0c;滑动屏幕就能连接世界——这些触手可及的便利&#xff0c;让每个人都能感受到技术迭代的温度。但…

作者头像 李华
网站建设 2026/5/21 23:37:17

燃爆!大数据OLAP在电力行业的创新应用

燃爆&#xff01;大数据OLAP在电力行业的创新应用 摘要/引言 "2023年夏季&#xff0c;某省电网在用电高峰期间成功避免了大规模停电事故&#xff0c;这背后是一个每天处理超过10亿条电力数据的OLAP系统在默默支撑。"这个真实案例揭示了一个不争的事实&#xff1a;电…

作者头像 李华
网站建设 2026/5/29 19:17:18

Java毕设项目推荐-基于springboot的学生宿舍管理系统的设计与实现宿舍资源管理、学生入住、费用管理、设备报修、访客登记【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/22 9:41:05

llm使用 AgentScope-Tuner 通过 RL 训练 FrozenLake 智能体

agentscope-samples/tuner/frozen_lake at main agentscope-ai/agentscope-samples --- agentscope-samples/tuner/frozen_lake at main agentscope-ai/agentscope-samples At least 2 NVIDIA GPUs with CUDA 12.8 or newer 至少需要 2 块 NVIDIA GPU&#xff0c;支持 CUDA 1…

作者头像 李华
网站建设 2026/5/30 14:39:06

【毕业设计】基于springboot的周至猕猴桃产品售卖网站的设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华