首页 > 编程语言 >Java学习教程,从入门到精通,Java 循环结构:while 和 do...while(17)

Java学习教程,从入门到精通,Java 循环结构:while 和 do...while(17)

时间:2024-11-02 21:46:53浏览次数:6  
标签:Count do 循环体 Java System while 循环

Java 循环结构:while 和 do…while

在 Java 中,whiledo...while 是两种基本的循环控制结构,用于在特定条件下重复执行一段代码。

1. while 循环

语法

while (condition) {
    // 循环体
}

知识点

  • condition 是一个布尔表达式。
  • 在每次循环开始前,都会检查 condition 是否为 true
  • 如果 conditiontrue,则执行循环体;否则,跳出循环。
  • while 循环适用于在循环开始前已知循环条件的情况。
    实际案例
public class WhileExample {
    public static void main(String[] args) {
        int count = 0;

        while (count < 5) {
            System.out.println("Count: " + count);
            count++;
        }
    }
}

输出:

Count: 0
Count: 1
Count: 2
Count: 3
Count: 4
2. do…while 循环

语法

do {
    // 循环体
} while (condition);

知识点

  • condition 是一个布尔表达式。
  • 循环体至少会被执行一次,因为 condition 是在循环体执行完毕后检查的。
  • 如果 conditiontrue,则重复执行循环体;否则,跳出循环。
  • do...while 循环适用于在循环开始前必须执行一次循环体的情况,且循环条件在循环体之后检查。

实际案例

public class DoWhileExample {
    public static void main(String[] args) {
        int count = 0;

        do {
            System.out.println("Count: " + count);
            count++;
        } while (count < 5);
    }
}

输出:

Count: 0
Count: 1
Count: 2
Count: 3
Count: 4

总结

  • while 循环:在进入循环之前检查条件,如果条件为 true,则执行循环体。适用于循环条件在循环开始之前已知的情况。
  • do…while 循环:无论条件如何,循环体至少执行一次,然后在每次循环结束后检查条件。适用于循环体必须至少执行一次的情况。

这两种循环结构的选择取决于你的具体需求,以及是否需要确保循环体至少执行一次。

在Java中,whiledo...while是两种用于实现循环的语句,它们有相似之处,但也有一些关键的区别。以下是这两种循环的详细区分:

相似之处

  1. 条件判断:两种循环都依赖于一个布尔条件来决定是否继续执行循环体。
  2. 循环体:当条件为true时,两种循环都会执行循环体内的代码。

关键区别

  1. 执行顺序

    • while循环在每次迭代之前检查条件。如果条件为false,则循环体不会被执行,循环直接结束。
    • do...while循环在每次迭代之后检查条件。这意味着循环体至少会被执行一次,因为条件检查发生在循环体执行之后。
  2. 适用场景

    • while循环适用于在循环开始前已知是否需要执行循环体的情况。
    • do...while循环适用于必须至少执行一次循环体,然后根据某个条件决定是否继续执行的情况。

代码示例

while循环示例

int count = 0;
while (count < 5) {
    System.out.println("Count: " + count);
    count++;
}
// 输出:Count: 0, Count: 1, Count: 2, Count: 3, Count: 4

在这个例子中,while循环在每次迭代之前检查count < 5这个条件。当count增加到5时,条件变为false,循环结束。

do…while循环示例

int count = 0;
do {
    System.out.println("Count: " + count);
    count++;
} while (count < 5);
// 输出:Count: 0, Count: 1, Count: 2, Count: 3, Count: 4

在这个例子中,do...while循环至少执行一次循环体,然后在每次迭代之后检查count < 5这个条件。尽管结果看起来与while循环相同,但在这个特定的例子中,即使count的初始值设为5,do...while循环也会打印出Count: 5(尽管随后会立即结束循环),而while循环则根本不会执行。

总结

  • 使用while循环时,如果条件一开始就为false,则循环体不会被执行。
  • 使用do...while循环时,无论条件如何,循环体至少会被执行一次。

选择哪种循环取决于您的具体需求。如果您需要在循环开始前检查条件,则使用while循环。如果您需要确保循环体至少执行一次,则使用do...while循环。

当然可以。基于您引用的关于 do...while 循环的描述,我将为您提供更多实际的 Java 编程案例,以加深您对这种循环结构的理解。

案例一:用户输入验证

在这个例子中,我们使用 do...while 循环来确保用户输入了一个有效的整数。

import java.util.Scanner;

public class UserInputValidation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number = 0; // 初始化一个变量来存储用户输入的数字
        boolean isValid = false; // 初始化一个布尔变量来检查输入是否有效

        do {
            System.out.print("请输入一个整数: ");
            if (scanner.hasNextInt()) {
                number = scanner.nextInt();
                isValid = true; // 如果输入是整数,则设置isValid为true
            } else {
                System.out.println("输入无效,请输入一个整数。");
                scanner.next(); // 清除无效输入
            }
        } while (!isValid); // 当输入无效时,继续循环

        System.out.println("您输入的整数是: " + number);
        scanner.close();
    }
}

在这个例子中,无论用户第一次输入的是什么,循环体都会至少执行一次。然后,根据输入是否有效(即是否为整数),isValid 变量会被更新,循环会继续或结束。

案例二:菜单驱动的程序

在这个例子中,我们使用 do...while 循环来创建一个简单的菜单驱动的程序,用户可以反复选择直到他们选择退出。

import java.util.Scanner;

public class MenuDrivenProgram {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choice;
        boolean exit = false;

        do {
            System.out.println("请选择一个选项:");
            System.out.println("1. 显示消息");
            System.out.println("2. 计算两个数的和");
            System.out.println("3. 退出");
            choice = scanner.nextInt();

            switch (choice) {
                case 1:
                    System.out.println("这是一个消息!");
                    break;
                case 2:
                    int num1 = scanner.nextInt();
                    int num2 = scanner.nextInt();
                    System.out.println("两个数的和是: " + (num1 + num2));
                    break;
                case 3:
                    exit = true;
                    System.out.println("退出程序。");
                    break;
                default:
                    System.out.println("无效的选择,请重试。");
            }
        } while (!exit);

        scanner.close();
    }
}

在这个例子中,用户会看到一个菜单,并可以选择执行不同的操作。他们可以通过选择选项3来退出程序。在退出之前,无论用户选择什么,循环体都会至少执行一次。

案例三:猜数字游戏

在这个例子中,我们使用 do...while 循环来创建一个简单的猜数字游戏。

import java.util.Random;
import java.util.Scanner;

public class GuessNumberGame {
    public static void main(String[] args) {
        Random random = new Random();
        Scanner scanner = new Scanner(System.in);
        int targetNumber = random.nextInt(100) + 1; // 生成1到100之间的随机数
        int guess = 0;
        boolean win = false;

        do {
            System.out.print("请输入一个1到100之间的数字来猜测: ");
            guess = scanner.nextInt();

            if (guess < targetNumber) {
                System.out.println("太小了!");
            } else if (guess > targetNumber) {
                System.out.println("太大了!");
            } else {
                win = true;
                System.out.println("恭喜你,猜对了!");
            }
        } while (!win);

        scanner.close();
    }
}

在这个例子中,用户会反复猜测一个随机数,直到他们猜对为止。每次猜测后,程序都会告诉他们猜的数字是太大还是太小。由于使用了 do...while 循环,用户至少会进行一次猜测。
这些案例展示了 do...while 循环在不同场景下的应用,希望它们能帮助您更好地理解这种循环结构。

标签:Count,do,循环体,Java,System,while,循环
From: https://blog.csdn.net/qq_45746668/article/details/143457240

相关文章

  • 基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现五
    一、前言介绍:1.1项目摘要随着电子商务的迅猛发展和城市化进程的加快,快递业务量呈现出爆炸式增长的趋势。传统的快递寄取方式,如人工配送和定点领取,已经无法满足现代社会的快速、便捷需求。这些问题不仅影响了快递服务的效率,也增加了快递员和消费者的不便。在这样的背景下,快递柜......
  • Docker和k8s核心概念(理解友好版)
    背景这是在HWL负责网校云业务线测试时,给同事分享的基础概念文档。目录:一.Docker核心概念二.Kubernetes是什么及架构三.Kubernetes核心概念四.Deployment部署Pod操作一、Docker核心概念 1、为什么是Docker虚拟机:基础设施(Infrastructure)。服务器,或者是云主机。主......
  • JavaScript 对象
    一Array数组对象点击查看代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><script>//方式一vararr=newArray(1,2,3);......
  • Java switsh的运用
    importjava.util.Scanner;publicclass第二{ public第二(){ //TODOAuto-generatedconstructorstub } /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Scannerscan=newScanner(System.in); int......
  • JavaScript基础语法
    ps:区分大小写,//(注释)一输出语句点击查看代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><script>window.alert("hellojs~&q......
  • java开发基于springboot框架生鲜海鲜商城交易系统设计与实现
    目录项目技术路线系统实现截图技术栈说明本课题软硬件环境核心代码部分展示源码获取-详细视频演示项目技术路线本课题使用了SpringBoot、Vue和MySQL作为技术栈,体现了其技术可行性。SpringBoot作为轻量级Java开发框架,能提高开发效率和降低系统复杂度;Vue作为流行的前......
  • 循环结构(for,while,do…while)
    for循环的基本格式for(初始化语句;条件判断语句;条件控制语句){printf();循环体语句}其实重复执行的就是条件判断语句,条件控制语句和循环体语句这三个。while循环的基本格式先定义一个变量inti=1;while(条件判断语句){printf();i++;}而for和while的区别一般是体现在使用习惯......
  • JAVA开源项目 网上订餐系统 计算机毕业设计
    本文项目编号T039,文末自助获取源码\color{red}{T039,文末自助获取源码}......
  • JAVA开源项目 房屋租赁系统 计算机毕业设计
    本文项目编号T040,文末自助获取源码\color{red}{T040,文末自助获取源码}......