news 2026/3/12 5:56:17

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/3/5 15:08:54

大数据可视化项目实战:从数据采集到展示

大数据可视化项目实战&#xff1a;从数据采集到展示 关键词&#xff1a;数据采集、数据清洗、数据存储、数据可视化、项目实战 摘要&#xff1a;本文以「小明的奶茶店数据运营」为故事主线&#xff0c;带您一步步走完大数据可视化项目的全流程——从采集销售数据到清洗整理&…

作者头像 李华
网站建设 2026/2/26 14:57:05

OoderAgent 企业版 2.0 发布的意义:一次生态战略的全面升级

本次 ooderAgent 企业版 2.0 的发布&#xff0c;远非一次简单的版本迭代&#xff0c;而是标志着整个 ooderAgent 生态在战略定位、技术治理和社区共建上迈入了全新的阶段。其发布意义可以从以下几个层面进行综合分析&#xff1a; ‌一、 对生态本身&#xff1a;从“内部工具”…

作者头像 李华
网站建设 2026/3/12 4:40:05

PostgreSQL UPDATE 语句详解

PostgreSQL UPDATE 语句详解 引言 PostgreSQL 是一款功能强大的开源关系型数据库管理系统,它广泛应用于各种规模的数据存储和查询场景。在数据库操作中,UPDATE 语句是用于修改表中记录的重要命令。本文将详细介绍 PostgreSQL 的 UPDATE 语句,包括其语法、使用方法以及注意…

作者头像 李华
网站建设 2026/3/4 16:17:23

小程序毕设选题推荐:基于springboot+小程序的家教兼职系统小程序基于微信小程序的家教兼职系统家教预约【附源码、mysql、文档、调试+代码讲解+全bao等】

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

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

从平台工程视角“封装 Kubernetes”

从平台工程视角“封装 Kubernetes” ——从基础设施管理到自服务应用交付的工程化跃迁 在云原生时代,Kubernetes 已成为事实上的基础设施操作系统。但其原生 API 的复杂性,使得开发者被迫理解大量与业务无关的概念(Pod、Deployment、Ingress、HPA、RBAC……),严重拖慢了…

作者头像 李华