【Java 循环控制实例详解【While do... while】】

news2024/12/24 9:22:37

Java 循环控制详解【While & do… while】

在这里插入图片描述

在 Java 中,循环控制是程序设计中非常重要的部分,主要包括 while 循环和 do...while 循环。本文将详细介绍这两种循环的基本语法、执行流程及相关示例。

1. while 循环控制

基本语法

循环变量初始化;
while(循环条件){
    循环语句;
    循环变量迭代;
} //while 循环也有四要素 只是四要素放的位置和For不一样

while 循环的四要素与 for 循环类似,只是放置的位置不同。

执行流程分析

在这里插入图片描述

  • 循环条件是返回一个布尔值的表达式。
  • while 循环是先判断条件再执行语句。

示例 1

题目:编写一个程序,使用 while 循环输出 “Hello this is Yhame.” 和一个递增的数字,从 1 到 10。循环结束后,输出当前的数字值。

public class While01 {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 10) {
            System.out.println("Hello this is Yhame." + i);
            i++; // 循环迭代变量
        }
        System.out.println("推出循环,继续。。。" + i); // 这里 i = 11
    }
}

示例 2

题目:编写一个程序,使用 while 循环输出 1 到 100 之间所有能被 3 整除的数字。

public class WhileExercise01 {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 100) {
            if(i % 3 == 0) {
                System.out.println("i = " + i);
            }
            i++; // 将 i++ 写在 if 语句内部,会导致 i 在其他情况下无法递增,最终引发无限循环。
        }
        System.out.println("程序继续运行");
    }
}

示例 3

题目:编写一个程序,使用 while 循环输出 40 到 200 之间的所有偶数。

public class WhileExercise02 {
    public static void main(String[] args) {
        int i = 40;
        while(i >= 40 && i <= 200) {
            if(i % 2 == 0) {
                System.out.println("i = " + i);
            }
            i++; // 不能写在 if 循环里面; 将 i++ 写在 if 语句内部,会导致 i 在奇数情况下无法递增,最终引发无限循环。
        }
        System.out.println("The process continues");
    }
}

2. do...while 循环控制

基本语法

循环变量初始化;
do {
    循环语句;
    循环变量迭代;
} while(循环条件);
  1. dowhile 是关键字,也有循环四要素,只是位置不同。
  2. do...while 先执行语句,再判断条件,意味着循环体至少执行一次。
  3. while 后面有一个分号。
  4. whiledo...while 的区别需要注意。
do … while 循环的执行流程

在这里插入图片描述

示例代码

题目:编写一个程序,使用 do…while 循环输出 “Hello This is Yhame!”,直到循环变量达到 10 次。循环结束后,输出 “The process continues!”。

public class DoWhile01 {
    public static void main(String[] args) {
        int i = 1; // 循环变量的初始化
        do {
            System.out.println("Hello This is Yhame!");
            i++; // 循环迭代变量
        } while(i <= 10);
        System.out.println("The process continues!");
    }
}
结果

在这里插入图片描述

do...while 练习 1

题目:编写一个程序,使用 do…while 循环输出从 1 到 100 的数字。

public class DoWhileExercise01 {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println(i);
            i++;
        } while(i >= 0 && i <= 100);
    }
}

do...while 练习 2

题目:编写一个程序,使用 do…while 循环计算并输出从 1 到 100 的数字之和。

public class DoWhileExercise02 {
    public static void main(String[] args) {
        int i = 1;
        int sum = 0;
        do {
            sum += i;
            i++;
        } while(i > 0 && i <= 100);
        System.out.println("总和为" + sum);
        System.out.println("Procedure in progress!");
    }
}

do...while 练习 3

题目:编写一个程序,使用 do…while 循环统计 1 到 200 之间能被 5 整除但不能被 3 整除的数字的个数,并输出这些数字。

public class DoWhileExercise03 {
    public static void main(String[] args) {
        // 统计1--200之间能被5整除但不能被3整除的个数
        // (1) 使用do...while输出 1--200
        // (2) 过滤能被5整除但不能被3整除的数
        // (3) 统计满足条件的个数 int count = 0;
        int i = 1;
        int count = 0;
        do {
            if(i % 5 == 0 && i % 3 != 0) {
                // i++; 这里添加i++会让程序跳不出循环
                System.out.println("i = " + i);
                count++;
            }
            i++;
        } while(i > 0 && i <= 200);
        System.out.println("这样的数一共有:" + count);
    }
}

do...while 练习 4

题目:编写一个程序,模拟一个对话,问用户是否还钱。如果用户的回答不是 ‘y’,则继续询问并输出 “Yhame使出五连鞭!”。直到用户回答 ‘y’ 为止,最后输出 “还挺懂事”。

import java.util.Scanner;

public class DoWhileExercise4 {
    public static void main(String[] args) {
        // 如果李三不还钱,则Yhame一直使出五连鞭,直到李三说还钱为止
        // [System.out.println("Yhame问:还钱吗? (y/n)")] do...while
        Scanner in = new Scanner(System.in);
        char answer = ' ';

        do {
            System.out.println("Yhame问:还钱吗?(y/n)");
            answer = in.next().charAt(0); // 获取输入的第一个字符
            System.out.println("他的回答是" + answer);
            System.out.println("Yhame使出五连鞭!");
        } while(answer != 'y');
        System.out.println("还挺懂事");
    }
}

以上是关于 Java 循环控制的详细介绍,涵盖了 whiledo...while 循环的基本语法、执行流程及示例。希望对你理解 Java 循环控制有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2197889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在uniapp中实现长按聊天对话框可以弹出对话框然后可以删除该条对话,单击可以进入该条对话框的对话页面

效果展示 效果描述 长按【大于1s】某一条对话框会弹出一个对话框&#xff0c;点击确定按钮就可以将当前对话框从列表中进行删除&#xff0c;如果点击取消则不做额外操作。 如果只是点击了一下&#xff0c;时间【小于1s】的情况下会直接引入到与该用户的对话框详情页面。 代码…

ai绘画变现方式全解析,教你如何通过AI绘画赚钱

*AI绘画变现方式全解析&#xff0c;教你如何通过AI绘画赚钱* *为什么选择AI绘画&#xff1f;* 你是否曾经梦想过成为一名画家&#xff0c;但现实却让你无从下手? 或者你已经是一位艺术家&#xff0c;但苦于作品没能带来足够的收入&#xff1f;随着AI技术的飞速发展&#xff…

IDEA没有代码自动提示问题的解决

一、问题描述 如图&#xff0c;博主输入new Hash 没有提示出HashMap之类的api 原因在于&#xff1a;不小心打开了idea的省电模式&#xff0c;在这个模式下&#xff0c;idea是不会为我们提供自动提示的 二、问题解决 在File中找到 Power Save Mode选项&#xff0c;将它关闭即…

【西电电路实验】1. 仪器的使用(电子线路 III 电院)

文章目录 前言一、实验原理二、实验过程1. [高频信号源DSG3030 数据手册](https://www.rigol.com/Images/DSG3000_DataSheet_CN_tcm4-3558.pdf)2. [信号源 SDS 2320X 数据手册](https://www.siglent.com/u_file/download/24_05_29/SDS2000X%20HD_Datasheet_CN02A.pdf#:~:textSD…

MySQL多表查询:标量子查询

先看我的emp表结构 emp表 子查询基本语法 select * from t1 where column1 (select column1 from t2);例子1&#xff1a;查询"销售部" 的所有员工信息 这个可以先拆解为两个 a.查询"销售部"的部门ID select id from dept where name 销售部; b. 根…

2024重生之回溯数据结构与算法系列学习(11)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️ MYSQL REDIS Advance operation 专栏跑道二➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️HCIP&#xff1b;H3C-SE;CCIP——…

算法:724.寻找数组的中心下标

题目 链接&#xff1a;leetcode链接 思路分析&#xff08;前缀和&#xff09; 根据题意&#xff0c;我们可以将数组看成三个部分 [left] [mid] [right] 我们只需要[left]区间内的元素和等于[right]区间的元素和即可&#xff0c;此时mid就是中心下标 那么我们可以借助前缀和思…

怎么把录音转换成文字?七大不收费的录音转文字软件推荐,亲测好用!

怎么把录音转换成文字&#xff1f;录音转文字软件是一种可以将音频文件转换成文本的工具&#xff0c;甚至可以在录制音频的同时实时生成文本。音频文件是存储信息的常用方式之一&#xff0c;广泛应用于在线课程、长时间的讲座、商务会议以及产品介绍等场合&#xff0c;音频内容…

ThreadPoolExecutor的源码解析

ThreadPoolExecutor的源码解析 线程池的核心属性 ctl:当前的ctl就是一个int类型的数值,内部是基于AtomicInteger套了一层,进行运算时,是原子性的 ctl表示的线程池的两种核心状态: 线程池的状态: ctl的高3位标识线程池的状态工作线程的状态:ctl的低29位,表示工作线程的个数 pri…

FlagVNE]——用于虚拟网络嵌入的灵活、可通用的强化学习框架

介绍 论文地址&#xff1a;https://arxiv.org/pdf/2404.12633 网络虚拟化&#xff08;NV&#xff09;是一种创新技术&#xff0c;在 5G 网络和云计算等领域日益受到关注。NV 可通过网络切片和共享基础设施在同一物理网络上部署多个用户提交的虚拟网络请求&#xff08;VNR&…

性能测试-JMeter(1)

性能测试工具 主流性能测试工具LoadrunnerJMeter JMeter环境安装JMeter功能概要JDK常用文件目录介绍JMeter元件和组件介绍元件的基本介绍组件的基本介绍 JMeter元件作用域和执行顺序JMeter第一个案例线程组HTTP请求查看结果树 JMeter参数化&#xff08;重点&#xff09;用户定义…

02_InFluxDb

InFluxDb 初始化初始化流程 交互InFluxDbWebUI交互 数据模型行协议添加标签数据格式 数据类型空格索引 初始化 初始化流程 用户 密码 组织名称 Bucket—mysql里面的数据库概念 交互InFluxDb 暂用了8086端口.提供了 http api WebUI交互 略... 数据模型 这是mysql里面的表…

1500元买哪款显卡好?对比一下,差别明显

在游戏过程中&#xff0c;显卡负责渲染游戏画面&#xff0c;将其转化为可视化的图像&#xff0c;并快速显示在屏幕上&#xff0c;确保游戏运行的流畅性和画面的质量。所以对于游戏电脑来说&#xff0c;显卡的重要性尤为突出。虽说在最近几年&#xff0c;显卡市场的“消费升级”…

算法:前缀和算法模版

一维前缀和 题目 链接&#xff1a;一维前缀和模版题 思路分析 一&#xff1a;暴力O(q * N) 对于每一次询问&#xff0c;我们都可以用一个循环计算[l,r]区间内的元素和&#xff0c; 时间复杂度&#xff0c;O(q * N) 每一次计算一个区间都需要去循环一次&#xff0c;这是不是…

2024年中国研究生数学建模什么时候出成绩(附避坑指南)

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 今年的华为杯已经于2024年9月20日——2024年9月25日完成&#xff0c;相信大家下…

40 C 语言结构体:结构体数据类型、结构体变量、访问结构体成员、结构体指针

目录 1 为什么需要结构体 2 什么是结构体 3 声明结构体类型 3.1 语法格式 3.2 案例演示 3.2.1 学生信息结构体 3.2.2 通讯录条目结构体 3.2.3 猫咪结构体 4 声明结构体变量 4.1 什么是结构体变量 4.2 声明结构体变量的常见方式 5 结构体和结构体变量的区别与联系 …

基于STM32的智能鱼缸自动喂食系统设计

引言 本项目设计了一个基于STM32的智能鱼缸自动喂食系统&#xff0c;能够按照预设的时间间隔自动投放饲料&#xff0c;同时监测鱼缸内的水温和光照情况。该系统通过电机控制喂食器的旋转来实现饲料投放&#xff0c;用户还可以通过按键实现手动喂食。该项目展示了STM32在定时控…

Spring Validation —— 参数校验框架

案例说明——后端校验注册表单字段 在编写注册功能时&#xff0c;需要考虑字段校验的情况&#xff0c;这时候可以采用 Spring提供的一套参数校验框架工具——Spring Validation。一下是使用的步骤&#xff1a; 1. 导入validation坐标 2. 在参数上添加 Pattern注解&#xff0c…

单细胞|Signac 进行 Motif 分析

单细胞|Signac 进行 Motif 分析 引言 本教程将指导您如何在Signac平台上进行DNA序列的基序(Motif)分析。会介绍两种基序分析的方法&#xff1a;一种是在一组差异可访问的峰值中寻找出现频率较高的基序&#xff1b;另一种是在不同细胞群组间进行基序活性的差异分析。 library(Si…

simpread-OpenAI推出Canvas:让ChatGPT成为更出色的项目协作者

引言 OpenAI在最新一轮融资中创下了VC融资历史上的记录&#xff0c;与此同时&#xff0c;他们也推出了一项令人瞩目的新功能——Canvas。Canvas是一个专门为项目协作设计的界面&#xff0c;旨在让ChatGPT成为更高效的项目协作者。在现有的ChatGPT应用之外&#xff0c;它打开了…