news 2026/4/23 14:43:36

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/4/22 17:45:08

《凌微经 · 理悖相涵》第七章 形性一体——本然如是之元观

返回《凌微经》总目录 第七章 形性一体——本然如是之元观 基于逻辑理性&#xff0c;凡可想象或感知的一切——诸如实体、现象、物质、意识、关系、事件、概念、符号、静止、运动、科学、神秘、真实、虚幻、存在或不存在、可指涉或不可指涉——皆有其本质。此本质从字面理解&a…

作者头像 李华
网站建设 2026/4/23 13:19:47

C# 变量作用域

C# 变量作用域 在编程语言C#中,理解变量作用域对于编写有效和高效的代码至关重要。变量作用域定义了变量可以在程序中访问的范围。以下是关于C#中变量作用域的详细解析。 一、变量作用域概述 变量作用域是指变量的有效范围,即程序中可以从哪个地方访问该变量。在C#中,变量…

作者头像 李华
网站建设 2026/4/23 5:58:35

TypeScript String

TypeScript String 引言 TypeScript 作为 JavaScript 的超集,提供了丰富的类型系统来增强 JavaScript 的类型安全性。在 TypeScript 中,字符串是一种广泛使用的类型,用于存储和处理文本数据。本文将深入探讨 TypeScript 中的 String 类型,包括其基本用法、常用方法以及与…

作者头像 李华
网站建设 2026/4/23 14:37:57

计算机Java毕设实战-基于springboot的学生宿舍管理系统的设计与实现宿舍、学生、维修【完整源码+LW+部署说明+演示视频,全bao一条龙等】

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

作者头像 李华
网站建设 2026/4/23 12:02:34

【计算机毕业设计案例】基于springboot+小程序的驾校考试模拟系统小程序考试管理、题库管理、用户管理和成绩查询(程序+文档+讲解+定制)

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

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

小程序毕设项目:基于springboot的周至猕猴桃产品售卖网站的设计与实现(源码+文档,讲解、调试运行,定制等)

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

作者头像 李华