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

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

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


1. While 语句

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

基本语法:
java 复制代码
while (condition) {
    // 执行的语句
}
  • condition :布尔表达式,返回 true 或 false。
  • 如果条件为 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 < 11 为 false,循环结束。
无限循环:

如果条件始终为 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 初始值为 1,do 语句中的代码仍然会先执行一次。
  • 每次执行后检查条件 count < 11,直到 count 达到 11 时退出循环。

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

📝 总结

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

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

相关推荐
WL学习笔记2 分钟前
使用string类
c++·后端·string类
飞鸟真人23 分钟前
IM网关系列(九)单账号流量统计:滑动窗口桶方案设计与Go实现
后端·golang
Python自动化直播37 分钟前
智能脚本批量管理拆开看:导入、导出、重写、试听
前端·python·ai·秒播
开开心心就好1 小时前
发票信息录入太麻烦?离线工具一键转表格
运维·服务器·前端·pdf·ocr·maven·intellij-idea
武子康1 小时前
Embedding 替换怎么评测:把索引成本算进成功任务
人工智能·后端·agent
এ慕ོ冬℘゜2 小时前
ES Promise.all/ Promise.race
前端·javascript·elasticsearch
喜欢打篮球的普通人2 小时前
LLVM 前端与优化层:Clang 如何把 C 代码变成 IR
c语言·前端·状态模式
大文说跨境3 小时前
亚马逊多店铺用过多款指纹浏览器,说点长期用的实际感受
前端·网络
中屹指纹浏览器svip3 小时前
中屹指纹浏览器和普通 Chrome 有什么区别?
前端·chrome·中屹指纹浏览器