Java 循环结构之 do-while 语句新手核心学习笔记
Java 基础极简通关前言do-while 是 Java 循环家族中 “保底执行” 的特殊成员核心特点是先执行、后判断哪怕条件不满足也会执行一次循环体。这篇笔记提炼 do-while 的核心语法、执行逻辑、实战场景和避坑要点新手 10 分钟掌握它和 while 的核心区别一、do-while 循环核心定位核心特性先执行循环体再判断条件循环体至少执行 1 次适用场景必须先执行一次的业务场景如用户输入验证、密码重试、菜单展示对比 whilewhile 是 “先判断、后执行”可能执行 0 次do-while 是 “先执行、后判断”至少 1 次两者互补覆盖所有循环需求。二、do-while 循环基础语法必记1. 标准结构// 1. 初始化循环变量 初始化语句; do { // 2. 循环体先执行一次再判断条件 循环体语句; // 3. 更新循环变量关键避免死循环 迭代语句; } while (条件表达式); // 注意末尾必须加分号2. 核心执行流程三步必背初始化执行一次循环变量初始化如int i 1;执行循环体不管条件是否满足先执行一次循环体代码判断 迭代计算条件表达式返回 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); // 缺少ii永远1条件永远true死循环 } while (i 5);解决循环体中必须包含i/i--等更新循环变量的代码确保条件最终能变为 false。坑 3混淆执行顺序错误选择循环类型比如 “计算 1-100 的和”用 do-while 虽然能实现但逻辑上更适合用 while/for无需保底执行而 “用户输入验证” 用 while 则会导致首次不提示输入逻辑错误。解决记住核心原则 ——需要保底执行一次用 do-while否则用 while。五、核心总结do-while 循环先执行、后判断循环体至少执行 1 次末尾必须加;核心适用场景密码验证、菜单展示、输入提示等 “必须先执行一次” 的业务避坑重点迭代语句不能漏、末尾分号不能少、根据执行需求选择循环类型。do-while 是 while 的补充掌握它和 while 的执行顺序差异就能灵活应对所有循环场景。动手敲一遍密码验证的案例就能彻底理解它的核心价值

相关新闻

Helm Chart 是什么?

Helm Chart 是什么?

Helm Chart 是什么? 文章目录Helm Chart 是什么?一、Helm 与 Helm Chart 是什么?二、为什么需要 Helm Chart?三、Helm Chart 的核心结构四、Helm 的核心概念与工作流程五、如何使用 Helm Chart?六、总结:He…

2026/7/5 14:05:38 阅读更多 →
局域网内如何互相ping通?

局域网内如何互相ping通?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者&…

2026/5/17 3:29:16 阅读更多 →
HarmonyOS应用开发实战(基础篇)Day01-《ArkTS基本知识》

HarmonyOS应用开发实战(基础篇)Day01-《ArkTS基本知识》

ArkTS基本知识1、ArkTS语言特点1.1、对象字面量必须标注类型1.2、不支持 Structural Typing(结构化类型)2、ArkTS基本数据类型2.1、number 类型2.2、boolean 类型2.3、string 类型3、高级数据类型3.1、枚举类型3.2、联合类型3.3、数组类型4、运算符4.1、…

2026/5/17 3:29:15 阅读更多 →

最新新闻

74HC32与PIC18F45K50实现高效键盘管理方案

74HC32与PIC18F45K50实现高效键盘管理方案

1. 为什么需要74HC32配合PIC18F45K50管理键盘?在嵌入式系统设计中,IO资源永远是稀缺品。传统2x2矩阵键盘需要占用4个IO口(2行2列),而采用74HC32或门芯片后,仅需2个IO即可实现4个按键的独立检测——这正是该…

2026/7/6 0:35:25 阅读更多 →
openEuler/QoS-Deployment-Test:从零开始编写自定义测试用例的完整指南

openEuler/QoS-Deployment-Test:从零开始编写自定义测试用例的完整指南

openEuler/QoS-Deployment-Test:从零开始编写自定义测试用例的完整指南 【免费下载链接】QoS-Deployment-Test Docker-based openEuler Online-Offline Co-scheduling Test Suite. 项目地址: https://gitcode.com/openeuler/QoS-Deployment-Test 前往项目官网…

2026/7/6 0:35:25 阅读更多 →
故障复盘——让失败“变成财富“

故障复盘——让失败“变成财富“

故障复盘——让失败"变成财富" 你有没有过考试错题本? 生活场景:错题本的作用 没有错题本 你考试考砸了: 错了3道题 订正了 忘了为什么错 下次考类似的,还是错 没有复盘,错误会重复。 有错题本 你考试考砸了: 错题记到本子上 分析错误原因 总结解题方法 …

2026/7/6 0:35:25 阅读更多 →
Java Web上传文件到指定目录?这招秒传逻辑绝了,调试爽到飞起

Java Web上传文件到指定目录?这招秒传逻辑绝了,调试爽到飞起

借助监控工具, 能够看到控件所提交的数据, 清晰程度极高, 调试过程极为简便。2.通过ajax向后端发送请求$.ajax({ url : "${pageContext.request.contextPath}/UploadServlet", type : "POST", data : $( #postForm).serialize(), success : function(data)…

2026/7/6 0:33:25 阅读更多 →
COCO 2017 数据集实战:PyTorch DataLoader 构建与 80 类目标检测数据加载

COCO 2017 数据集实战:PyTorch DataLoader 构建与 80 类目标检测数据加载

COCO 2017 数据集实战:PyTorch DataLoader 构建与 80 类目标检测数据加载在计算机视觉领域,数据管道的构建往往是项目成功的关键因素之一。一个高效、灵活的数据加载系统不仅能加速模型训练过程,还能帮助开发者更好地理解和处理数据。本文将深…

2026/7/6 0:33:24 阅读更多 →
Docker 镜像签名:能拉取不代表能运行

Docker 镜像签名:能拉取不代表能运行

Docker 镜像签名:能拉取不代表能运行 一、镜像可信不能只靠仓库地址 容器镜像是云原生交付的核心载体。很多团队默认“从公司镜像仓库拉下来的就可信”,但镜像可能被错误覆盖、供应链污染、tag 被重用、构建过程被篡改。镜像能拉取,不代表它…

2026/7/6 0:31:24 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻