当前位置: 首页 > news >正文

Java语言程序设计——篇三(2)

循环结构

  • 概述
    • 1️⃣while循环
        • 例题讲解
    • 2️⃣do-while循环
        • 例题讲解
  • 🚩while循环与do-while循环区别
    • 3️⃣for循环
        • 例题讲解
    • 4️⃣循环的嵌套
      • 🏮例题讲解

概述

⭐️Java语言提供了4种循环结构:
(1) while循环
(2) do-while循环
(3) for循环
(4)增强的for循环
⭐️一般情况下,一个循环结构包含四部分内容:
(1)初始化部分
(2)循环条件
(3)循环体部分
(4) 迭代部分

1️⃣while循环

while循环语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。
语法结构如下所示:
[初始化部分]
while (条件表达式){
// 循环体
[迭代部分]
}

注意: 如果条件表达式的值一开始就为假,则循环体一次也不执行,但循环条件表达式一定能够执行。
在这里插入图片描述
              “当循环”

例题讲解

例:随机产生一个100~200之间的整数,用户从键盘上输入所猜的数,程序显示是否猜中的消息,如果没有猜中要求用户继续猜,直到猜中为止。

int magic = (int)(Math.random()*101)+100;
分析:java.long.Math类的random()方法,返回一个0.01.0(不包括1.0)的double型随机数,乘以101转化为0100的整数,再加上100,得到100~200之间的整数

import java.util.Scanner;
public class GuessNumber {public static void main(String[] args) {int magic = (int)(Math.random()*101)+100;Scanner input = new Scanner(System.in);System.out.print("请输入你猜的数:");int guess = input.nextInt();while(guess!=magic){if(guess > magic){System.out.println("错误!太大,请重猜");}else{System.out.println("错误!太小,请重猜");}guess = input.nextInt();}System.out.println("恭喜你,答对了!\n该数是"+magic);}
}

没有guess = input.nextInt();这行代码就会变成死循环

2️⃣do-while循环

语法结构如下所示:
[初始化部分]
do{
  // 循环体
[迭代部分]
}while(条件);

执行顺序是:
执行循环体语句,然后判断循环条件表达式的值。表达式为true时,继续执行循环体,表达式为false则结束循环。
注意:
即使条件表达式值为
循环体至少要执行一次。
在这里插入图片描述
              “直到型循环”

例题讲解

假设我们要计算用户输入的一系列正整数之和,直到用户输入0为止。do-while循环的特点是先执行一次循环体,然后检查条件,如果条件为真,则继续循环;如果条件为假,则退出循环。

package shujia_test1;import java.util.Scanner;public class Csdn3_3 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int number;int sum = 0; // 用于存储数字之和do {System.out.print("请输入一个正整数(输入0结束): ");number = scanner.nextInt(); // 读取用户输入if (number > 0) {sum += number; // 如果输入的是正整数,则加到总和中}} while (number != 0); // 当输入不是0时,继续循环System.out.println("输入的正整数之和为: " + sum);scanner.close();}
}

🚩while循环与do-while循环区别

1. 循环条件的判断时机

  • while循环:是先判断条件再执行循环体。也就是说,在每次循环开始前,都会先检查条件表达式是否为真。如果条件为真,则执行循环体内的语句;如果条件为假,则直接跳过循环体,继续执行循环之后的语句。因此,while循环有可能一次都不执行循环体。
  • do-while循环:是先执行循环体再判断条件。即,无论条件是否满足,循环体都会至少执行一次。然后,在循环体执行完毕后,再检查条件表达式的值。如果条件为真,则继续执行下一次循环;如果条件为假,则退出循环。
    2. 循环结构的表达式
  • while循环的表达式为:while(表达式){循环体}。这里,表达式是循环的条件,只有在条件为真时,才会执行循环体中的语句。
  • do-while循环的表达式为:do{循环体;}while(条件表达式);。这里,循环体会先执行一次,然后检查条件表达式的值。如果条件为真,则继续执行循环体;如果条件为假,则退出循环。
    3. 适用场景
  • while循环适用于事先知道循环次数或循环条件的情况,特别是当循环可能一次都不执行时。
  • do-while循环适用于至少需要执行一次循环体的情况,无论条件是否满足。这在需要至少进行一次初始化操作或验证操作的场景中特别有用。

3️⃣for循环

语法结构如下所示:
for ([初始化部分];[条件]; [迭代部分]){
// 循环体
}

初始化部分:只执行一次,循环变量赋初值;
条件:循环条件,用来判断是否继续循环;可以省略(死循环)
迭代部分:用于修改循环变量的值,改变循环条件
循环体:单条语句或复合语句
在这里插入图片描述
🌈循环控制变量可以在for循环中声明和初始化,但在循环外不能引用它。
🌈for循环中的三个表达式可以均为空。若条件表达式也为空,则表示当前循环是一个无限循环。
🌈for循环、while循环、do-while循环有时可相互转换。

例题讲解

编写程序,输出100~1000所有能被5和6整除的数,每行显示10个,数字之间用一个空格字符隔开。

package shujia_test1;public class Csdn3_4 {public static void main(String[] args) {int count = 0; // 用于计数每行已输出的数字数量for (int i = 100; i <= 1000; i++) {if (i % 5 == 0 && i % 6 == 0) { // 检查数字是否同时被5和6整除System.out.print(i + " "); // 输出数字及空格count++; // 增加计数// 当每行输出了10个数字时,换行if (count % 10 == 0) {System.out.println();}}}}
}

运行结果:
在这里插入图片描述

4️⃣循环的嵌套

嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。
在循环嵌套时,外循环必须完整地包含内循环,不能相互交叉。
while、do…while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套。
for(初始化;条件;迭代){
// 外层循环体
for(初始化;条件;迭代){
// 内层循环体
}
  // 其他语句
}
在这里插入图片描述

🏮例题讲解

例:编写程序打印输出如下乘法表

package shujia_test1;public class Csdn3_5 {public static void main(String[] args) {for (int i = 1; i < 10; i++) {for (int j = 1; j <= i; j++) {System.out.print(j + "*" + i + "=" + i * j + "  ");}System.out.println();}}
}

运行结果:
在这里插入图片描述
博主用心写,读者点关注,互动传真情,知识不迷路。

相关文章:

Java语言程序设计——篇三(2)

循环结构 概述1️⃣while循环例题讲解 2️⃣do-while循环例题讲解 &#x1f6a9;while循环与do-while循环区别3️⃣for循环例题讲解 4️⃣循环的嵌套&#x1f3ee;例题讲解 概述 ⭐️Java语言提供了4种循环结构&#xff1a; (1) while循环 (2) do-while循环 (3) for循环 (4)增…...

如何实现一个分布式锁

如何实现一个分布式锁 本篇内容主要介绍如何使用 Java 语言实现一个注解式的分布式锁&#xff0c;主要是通过注解AOP 环绕通知来实现。 1. 锁注解 我们首先写一个锁的注解 /*** 分布式锁注解*/ Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Documente…...

Ajax从零到实战

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...

编程参考 - 在C++移动构造函数声明中使用noexcept

在 C 中&#xff0c;noexcept 是用于表示函数不抛出异常的指定符。它既可用于常规函数&#xff0c;也可用于特殊成员函数&#xff0c;包括构造函数和析构函数。使用 noexcept 可以帮助编译器进行优化&#xff0c;提高代码的安全性和正确性。 In C, noexcept is a specifier use…...

Vue2/Vue3实现全局/局部添加防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。

水印目的 版权保护:水印可以在图片、文档或视频中嵌入作者、品牌或版权所有者的信息,以防止未经授权的复制、传播或使用。当其他人使用带有水印的内容时,可以追溯到原始作者或版权所有者,从而加强版权保护。 身份识别:水印可以用作作者或品牌的标识符,使观众能够轻松识…...

GuLi商城-商品服务-API-属性分组-获取分类属性分组

获取分类属性分组接口开发 操作的是这张表 造数据: 后台代码: @Override public PageUtils queryPage(Map<String, Object> params, Long catelogId) {//select * from pms_attr_group where catelog_id=? and (attr_group_id=key or attr_group_name like %key%)Stri…...

安全测试理论

安全测试理论 什么是安全测试&#xff1f; 安全测试&#xff1a;发现系统安全隐患的过程安全测试与传统测试区别 传统测试&#xff1a;发现bug为目的 安全测试&#xff1a;发现系统安全隐患什么是渗透测试 渗透测试&#xff1a;已成功入侵系统为目标的的攻击过程渗透测试与安全…...

序列化和反序列化

面试题&#xff1a;对序列化和反序列化的理解&#xff1f; 我们之所以需要序列化&#xff0c;它核心的目的是为了解决网络通信之间的对象传输的问题&#xff0c;也就是说&#xff0c;如何把当前JVM进程的一个对象&#xff0c;通过跨网络传输到另一个JVM进程里面&#xff0c;而序…...

OpenCV中使用Canny算法在图像中查找边缘

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 算法描述 Canny算法是一种广泛应用于计算机视觉和图像处理领域中的边缘检测算法。它由John F. Canny在1986年提出&#xff0c;旨在寻找给定噪声条件下的最佳边…...

基于springboot+vue+uniapp的机电公司管理信息系统

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

电子期刊制作实战教程:从零开始制作

​随着互联网的普及&#xff0c;电子期刊已经成为了信息传递的重要载体。它以便捷、环保、互动性强等特点受到了越来越多人的青睐。那么&#xff0c;如何从零开始制作一份吸引人的电子期刊呢&#xff1f; 1.要制作电子杂志,首先需要选择一款适合自己的软件。比如FLBOOK在线制作…...

11.FreeRTOS_事件组

事件组概述 事件组的作用&#xff1a; 可以等待某一个事件发生可以等待若干个事件发生可以等待若干个事件中的某一个事件发生 同步点是事件组的另一个使用方式&#xff0c;它可以让多个任务进行阻塞等待&#xff0c;当全部事件完成后&#xff0c;再一起解除任务的阻塞。常常…...

Python爬虫-爬取三国演义文本数据-bs4

bs4进行数据解析 -数据解析的原理: - 1.标签定位 -2.提取标签、标签属性中存储的数据值 - bs4数据解析的原理: - 1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中 -2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取 - 环境安装: - pi…...

html5——列表、表格

目录 列表 无序列表 有序列表 自定义列表 表格 基本结构 示例 表格的跨列 表格的跨行 列表 无序列表 <ul>【声明无序列表】 <li>河间驴肉火烧</li>【声明列表项】 <li>唐山棋子烧饼</li> <li>邯郸豆沫</li> <l…...

【Python字符串攻略】:玩转文字,编织程序的叙事艺术

文章目录 &#x1f680;一.字符串基础&#x1f308;二.查看数据类型⭐三.转化❤️四.字符串索引&#x1f6b2;五.字符串切片&#x1f3ac;六.字符串切片-步长☔七.反向切片注意事项&#x1f6b2;八.字符串&#x1f4a5;查&#x1f4a5;改&#x1f4a5;删 ❤️九.字符串拼接&…...

element form表单中密码框被自动赋值,并默认背景色为白色,手动输值后背景色才是自己配置的背景色,与表单的自动填充有关

事件背景&#xff1a; 一个表单&#xff0c;有两组需要输入密码的地方&#xff0c;两组都被填充用户名密码&#xff0c;其中一组是其他信息&#xff0c;不是用户名密码&#xff0c;也被填充了&#xff0c;且input背景色是白色&#xff0c;表单中的input已经手动配置为无背景色&…...

【UE5.1 角色练习】15-枪械射击——子弹发射物

目录 效果 步骤 一、创建并发射子弹 二、优化子弹 效果 步骤 一、创建并发射子弹 1. 在前面的文章中&#xff08;【UE5.1 角色练习】06-角色发射火球-part1&#xff09;我们创建了蓝图“BP_Skill_FireBall” 这里我们复制一份命名为“BP_Ammo_5mm”&#xff0c;用于表示…...

Zynq7000系列FPGA中的DMA控制器的编程限制

有关DMAC编程时适用的限制信息&#xff0c;有四个考虑因素&#xff1a; 固定非对齐突发Endian swap size restrictions&#xff1a;在数据传输或处理过程中&#xff0c;不同字节序&#xff08;Endian&#xff09;之间的转换和对应的限制在DMA周期内更新通道控制寄存器当MFIFO满…...

超简易高效的 AI绘图工具—与sd-webui一致界面,6G显存最高提升75%出图速率!(附安装包)

大家好&#xff0c;我是灵魂画师向阳 今天给大家分享一个基于Stable Diffusion WebUI 构建的AI绘图工具—sd-webui-forge&#xff0c;该工具的目标在于简化插件开发&#xff0c;优化资源管理&#xff0c;加速推理。 Forge承诺永远不会对Stable Diffusion WebUI用户界面添加不…...

ArduPilot开源代码之OpticalFlow_backend

ArduPilot开源代码之OpticalFlow_backend 1. 源由2. Library设计3. 重要例程3.1 OpticalFlow_backend::_update_frontend3.2 OpticalFlow_backend::_applyYaw 4. 总结5. 参考资料 1. 源由 光流计是一种低成本定位传感器&#xff0c;所有的光流计设备传感驱动代码抽象公共部分统…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...