34. Java 控制流语句 While 和 Do-While 语句

34. Java 控制流语句 While 和 Do-While 语句

在 Java 中,whiledo-while 都是用于执行循环的结构。它们的主要区别在于条件判断的时机,while 循环在循环开始前检查条件,而 do-while 循环则是在每次循环后检查条件,因此,do-while 至少会执行一次循环体。👇


1. While 语句

while 语句用于在给定的条件为 true 时重复执行代码块。每次进入循环前,都会检查条件,如果条件为 true,则继续执行循环体;如果为 false,则退出循环。

基本语法:
java 复制代码
while (condition) {
    // 执行的语句
}
  • condition :布尔表达式,返回 truefalse
  • 如果条件为 true,循环体会执行;如果为 false,则退出循环。
示例:打印 1 到 10 的值
java 复制代码
class WhileDemo {
    public static void main(String[] args) {
        int count = 1;
        while (count < 11) {
            System.out.println("Count is: " + count);
            count++;
        }
    }
}
程序输出:
java 复制代码
Count is: 1
Count is: 2
Count is: 3
Count is: 4
Count is: 5
Count is: 6
Count is: 7
Count is: 8
Count is: 9
Count is: 10
解释:
  • count 从 1 开始,每次循环打印 count 并递增。
  • count 达到 11 时,条件 count < 11false,循环结束。
无限循环:

如果条件始终为 true,则会形成 无限循环

java 复制代码
while (true) {
    // 无止境的循环
}

2. Do-While 语句

do-while 语句与 while 语句类似,区别在于条件检查的时机。do-while 循环总是先执行一次循环体代码,然后再检查条件。因此,do-while 循环至少会执行一次循环体。

基本语法:
java 复制代码
do {
    // 执行的语句
} while (condition);
  • condition :循环结束前检查的条件表达式。如果条件为 true,则继续执行;如果为 false,则退出循环。
示例:打印 1 到 10 的值
java 复制代码
class DoWhileDemo {
    public static void main(String[] args) {
        int count = 1;
        do {
            System.out.println("Count is: " + count);
            count++;
        } while (count < 11);
    }
}
程序输出:
java 复制代码
Count is: 1
Count is: 2
Count is: 3
Count is: 4
Count is: 5
Count is: 6
Count is: 7
Count is: 8
Count is: 9
Count is: 10
解释:
  • 即使 count 初始值为 1do 语句中的代码仍然会先执行一次。
  • 每次执行后检查条件 count < 11,直到 count 达到 11 时退出循环。

3. 主要区别:While 和 Do-While
  • while 语句 :在每次循环之前先检查条件,只有条件为 true 时才执行循环体。
  • do-while 语句 :先执行一次循环体代码,再检查条件。因此,无论条件如何,do-while 至少执行一次循环体。

📝 总结

  • while 语句:适用于需要在循环开始前验证条件的情况,只有条件成立时才执行循环体。
  • do-while 语句:适用于需要保证至少执行一次循环体的情况,条件检查是在循环体执行之后。

通过理解这两者的区别,我们可以根据具体需求选择最合适的循环结构,以提高代码的可读性和效率。💡

相关推荐
KD22 分钟前
阿里云服务迁移实战(二)——网关迁移与前后端分离配置
后端
升鲜宝供应链及收银系统源代码服务37 分钟前
《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册升鲜宝》
java·前端·数据库·chatgpt·供应链系统·生鲜配送
i建模1 小时前
将Edge浏览器的标签页从顶部水平排列**移至左侧垂直侧边栏
前端·edge
跟着珅聪学java1 小时前
js编写中文转unicode 教程
前端·javascript·数据库
小江的记录本1 小时前
【Redis】Redis全方位知识体系(附《Redis常用命令速查表(完整版)》)
java·数据库·redis·后端·python·spring·缓存
英俊潇洒美少年1 小时前
Vue3 深入响应式系统
前端·javascript·vue.js
颜酱1 小时前
回溯算法实战练习(3)
javascript·后端·算法
zihao_tom2 小时前
Spring Boot(快速上手)
java·spring boot·后端
Bear on Toilet2 小时前
基于Deepseek(C++)的SSE协议流式响应实现方案
chrome·后端·deepseek接入
didiplus2 小时前
Python 入门第三课:让程序"开口说话":90% 新手都忽略的输入输出技巧
后端