当前位置: 首页 > 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();}}
}

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

http://www.lryc.cn/news/399703.html

相关文章:

  • 如何实现一个分布式锁
  • Ajax从零到实战
  • 编程参考 - 在C++移动构造函数声明中使用noexcept
  • Vue2/Vue3实现全局/局部添加防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。
  • GuLi商城-商品服务-API-属性分组-获取分类属性分组
  • 安全测试理论
  • 序列化和反序列化
  • OpenCV中使用Canny算法在图像中查找边缘
  • 基于springboot+vue+uniapp的机电公司管理信息系统
  • 电子期刊制作实战教程:从零开始制作
  • 11.FreeRTOS_事件组
  • Python爬虫-爬取三国演义文本数据-bs4
  • html5——列表、表格
  • 【Python字符串攻略】:玩转文字,编织程序的叙事艺术
  • element form表单中密码框被自动赋值,并默认背景色为白色,手动输值后背景色才是自己配置的背景色,与表单的自动填充有关
  • 【UE5.1 角色练习】15-枪械射击——子弹发射物
  • Zynq7000系列FPGA中的DMA控制器的编程限制
  • 超简易高效的 AI绘图工具—与sd-webui一致界面,6G显存最高提升75%出图速率!(附安装包)
  • ArduPilot开源代码之OpticalFlow_backend
  • 设计模式探索:适配器模式
  • OpenCV 寻找棋盘格角点及绘制
  • 【深度学习】PyTorch深度学习笔记02-线性模型
  • 10.FreeRTOS_互斥量
  • EtherCAT总线冗余让制造更安全更可靠更智能
  • Android IdleHandler源码分析
  • Mac安装stable diffusion 工具
  • CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)
  • python的简单爬取
  • 【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第60集-agent训练资讯APP重点推荐AI资讯内容(含视频)
  • 【学术会议征稿】第三届智能电网与能源系统国际学术会议