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

【多重循环在Java中的应用】

多重循环在Java中的应用

在这里插入图片描述

介绍

多重循环是将一个循环嵌套在另一个循环体内的编程结构。Java中的 forwhiledo...while 循环均可作为外层循环和内层循环。建议使用两层嵌套,最多不超过三层,以保持代码的可读性。

在多重循环中,外层循环执行的次数为 (m),内层循环执行的次数为 (n),则内层循环实际上会被执行 (m \times n) 次。

示例

for(int i = 1; i <= 7; i++) { // 第一层循环 7次for(int j = 1; j <= 2; j++) { // 第二层循环 2次System.out.println("ok~~~"); // 总共输出14次}
}

多重循环执行步骤分析

for(int i = 0; i < 2; i++) {for(int j = 0; j < 3; j++) {System.out.println("i=" + i + " j=" + j);}
}

在这里插入图片描述
在这里插入图片描述

应用实例

练习一:班级成绩统计

题目:编写程序统计3个班级的成绩情况。每个班级有5名学生,计算各个班级的平均分以及所有班级的平均分,并统计及格人数。


//化繁为简
//(1) 先计算一个班的,接收5个学生的成绩
//1.1 创建Scanner 对象后,接受用户输入
//1.2 得到该班级的平均分,定义一个double sum 把所该班级的5个学生的成绩累加起来
//(2) 统计3个班(每个班5个学生) 平均分
//(3) 所有班级的平均分
//3.1 定义一个double = sum2;统计所有班级的平均分
//3.2 循环结束以后,sum2/(3 )
//(4) 统计三个班的及格人数 
//4.1 定义变量 int passNum = 0; 当有一个学生成绩>= 60 ,passNum++;
//4.2 还可以定义一个变量去统计每个班的及格人数,int count =0;  count++;import java.util.Scanner;public class MulForExercise01 {public static void main(String[] args) {Scanner in = new Scanner(System.in);double sum2 = 0; // 所有班级的总分int passNum = 0; // 及格人数统计for(int i = 1; i <= 3; i++) { // 表示班级double sum = 0;int count = 0; // 每个班的及格人数for(int j = 1; j <= 5; j++) { // 表示学生System.out.println("请输入第" + i + "个班级的第" + j + "个学生的成绩");double score = in.nextDouble();sum += score;if(score >= 60) {count++;   // 统计每个班的及格人数passNum++; // 累加总及格人数}}sum2 += sum; // 累加所有班级的总分System.out.println("第" + i + "个班级的平均分= " + (sum / 5));System.out.println("第" + i + "个班级的及格人数是" + count);System.out.println("====================================================");}System.out.println("所有班级的平均分= " + (sum2 / (3 * 5)));System.out.println("所有班级的及格人数= " + passNum);}
}

在这里插入图片描述

练习二:九九乘法表

题目:编写程序打印出九九乘法表。

public class Multable {public static void main(String[] args) {for(int i = 1; i <= 9; i++) { // i表示层数for(int j = 1; j <= i; j++) { // j表示每层的个数System.out.print("\t" + j + "*" + i + "=" + (i * j));}System.out.println();}}
}

结果

运行上述代码将输出班级的平均分和及格人数,以及九九乘法表的结果。这些练习不仅加深了对多重循环的理解,也提供了实际应用的示例。


相关文章:

【多重循环在Java中的应用】

多重循环在Java中的应用 介绍 多重循环是将一个循环嵌套在另一个循环体内的编程结构。Java中的 for、while 和 do...while 循环均可作为外层循环和内层循环。建议使用两层嵌套&#xff0c;最多不超过三层&#xff0c;以保持代码的可读性。 在多重循环中&#xff0c;外层循环执…...

JVM(Java Virtual Machine) 详解

1. JVM 内存区域划分 一个 Java 写的程序&#xff0c;跑起来就得到了一个 Java 进程&#xff08;资源分配的基本单位&#xff09; JVM 上面运行的字节码指令 1) 程序计数器&#xff08;比较小的空间&#xff09;&#xff0c;保存了下一条要执行的指令的地址 这个不是 CPU 的…...

【进阶OpenCV】 (4)--图像拼接

文章目录 图像拼接1. 读取图片2. 计算图片特征点及描述符3. 建立暴力匹配器4. 特征匹配5. 透视变换6. 图像拼接 总结 图像拼接 图像拼接是一项将多张有重叠部分的图像&#xff08;这些图像可能是不同时间、不同视角或者不同传感器获得的&#xff09;拼成一幅无缝的全景图或高分…...

pg if条件语句

1.语法&#xff1a; 2.区别 IF 语句&#xff1a; 只能在 PL/pgSQL 中使用&#xff0c;不适合在直接的 SQL 查询中使用。没有返回值&#xff0c;仅仅是控制逻辑流程。适合用在存储过程、函数和触发器中。 CASE 语句&#xff08;在 PL/pgSQL 中&#xff09;&#xff1a; 可以在 P…...

Pikachu-unsafe upfileupload-getimagesize

什么是getimagesize()&#xff1f; getimagesize()是PHP中用于获取图像的大小和格式的函数。它可以返回一个包含图像的宽度、高度、类型和MIME类型的数组。 由于返回的这个类型可以被伪造&#xff0c;如果用这个函数来获取图片类型&#xff0c;从而判断是否时图片的话&#xff…...

SOA是什么

SOA SOA 即 Service-Oriented Architecture&#xff08;面向服务的架构&#xff09;。 一、定义 SOA 是一种软件设计方法和架构理念&#xff0c;它将应用程序的不同功能单元&#xff08;称为服务&#xff09;通过定义良好的接口和契约联系起来。这些服务可以独立部署、独立运…...

构建高效团队,内部CRM系统的益处详解

内部CRM系统的最大优势之一是它能够集中并系统化客户信息&#xff0c;包括联系方式、购买历史、偏好设置、服务记录等。这种集中式的数据管理使企业能够快速响应客户需求&#xff0c;预测客户行为&#xff0c;提供个性化的服务或产品。更重要的是&#xff0c;它有助于建立一个统…...

Linux文件属性

Linux 文件基本属性 为了保护系统的安全性&#xff0c;Linux 系统对不同的用户访问同一文件&#xff08;包括目录文件&#xff09;的权限做了不同的规定。 在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限&#xff1a; - chown (change owner) &#…...

什么是Anaconda

目录 1. [什么是Anaconda](#什么是Anaconda) 2. [安装Anaconda](#安装Anaconda) - [检查系统](#检查系统) - [下载Anaconda](#下载Anaconda) - [安装Anaconda](#安装Anaconda) 3. [启动Anaconda Navigator](#启动Anaconda-Navigator) 4. [创建与管理环境](#创建与管理环…...

ubuntu24开启启动脚本

因为我是在之前装的是windows和ubuntu双系统,所以想在ubuntu中自动挂载和开启时做些自己的脚本处理开发环境。 我的脚本如下: truedei@truedei-code:~$ cat mount.shsudo umount /media/truedei/*#sudo ntfsfix /dev/sda3 #sudo ntfsfix /dev/sda4 #sudo ntfsfix /dev/sda5…...

流浪地球行星发动机

随着电影《流浪地球2》的热播&#xff0c;影片中的行星发动机构想激发了社会各界对科幻与未来科技的广泛讨论。本文深入剖析了行星发动机的科学原理&#xff0c;包括重力助推、行星转移轨道以及重核聚变等核心技术&#xff0c;揭示了其在推动地球逃离太阳系过程中的关键作用。通…...

云岚到家,使用Elasticsearch实现服务的搜索功能,使用Canal+MQ完成服务信息与ES索引同步。MQ

为什么使用elasticsearch?数据很多么&#xff1f; 项目使用Elasticsearch是实现了门户上对服务的搜索。 平台上的服务数据是并不是很多&#xff0c;全国所有区域下的服务信息加一起几千条&#xff0c;之所以使用Elasticsearch是因为&#xff1a; 1、公司架构师在系统架构时…...

【图论】迪杰特斯拉算法

文章目录 迪杰特斯拉算法主要特点基本思想算法步骤示例 实现迪杰斯特拉算法基本步骤算法思路 总结 迪杰特斯拉算法 迪杰特斯拉算法是由荷兰计算机科学家艾兹赫尔迪杰特斯拉&#xff08;Edsger W. Dijkstra&#xff09;在1956年提出的&#xff0c;用于解决单源最短路径问题的经…...

四、Python基础语法(数据类型转换)

数据类型转换就是将一种类型的数据转换为另外一种类型的数据&#xff0c;数据类型转换不会改变原数据&#xff0c;是产生一个新的数据。 变量 要转换为的类型(原数据) -> num int(28) 一.int()将其他类型转换为整型 1.整数类型的字符串转换为整型 num1 28 print(type…...

工业物联网的安全与隐私保护—SunIOT

【大家好&#xff0c;我是唐Sun&#xff0c;唐Sun的唐&#xff0c;唐Sun的Sun。一站式数智工厂解决方案服务商】 在当今数字化的时代&#xff0c;工业物联网&#xff08;IIoT&#xff09;正以前所未有的速度改变着工业生产的模式和效率。然而&#xff0c;随着工业物联网的广泛…...

二层网络和三层网络的理解与区别(包含通俗理解和归纳总结)

二层网络和三层网络是计算机网络中的两个不同层次&#xff0c;主要区别在于它们所处的OSI参考模型中的层次及其功能。 二层网络 (Layer 2 Network) 1.定义&#xff1a; 二层网络主要涉及数据链路层&#xff08;Layer 2&#xff09;&#xff0c;这是OSI模型中的第二层。 它负…...

【C++】:lambda表达式的高级应用

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 引言 今天 我们来见见lambda表达式的高级用法 用法1&#xff1a;自定义删除器 有些类型的delete方法并不符合自身的析构方法&#xff0c;这时我们就需要自定义删除器。 unique_ptr<FILE> ptr1(fopen…...

详解正确创建好SpringBoot项目后但是找不到Maven的问题

目录 问题 解决步骤&#xff1a; 找到File->Project Structure... 设置SDK 设置SDKs 问题 刚刚在使用IDEA专业版创建好SpringBoot项目后&#xff0c;发现上方导航栏的运行按钮是灰色的&#xff0c;而且左侧导航栏的pom.xml的图标颜色也不是正常的&#xff0c;与此同时我…...

力扣203.移除链表元素

题目链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6…...

UE4 材质学习笔记05(凹凸偏移和视差映射/扭曲着色器)

一.凹凸偏移和视差映射 1.偏移映射 这需要一个高度图并且它的分辨率很低&#xff0c;只有256*256&#xff0c;事实上&#xff0c;如果高度图的分辨率比较低并且有点模糊&#xff0c;效果反而会更好 然后将高度图输出到BumpOffset节点的height插槽中&#xff0c; 之后利用得到…...

网约班车升级手机端退票

背景 作为老古董程序员&#xff0c;不&#xff0c;应该叫互联网人员&#xff0c;因为我现在做的所有的事情&#xff0c;都是处于爱好&#xff0c;更多的时间是在和各行各业的朋友聊市场&#xff0c;聊需求&#xff0c;聊怎么通过IT互联网 改变实体行业的现状&#xff0c;准确的…...

【Vue】Vue 快速教程

Vue tutorial 参考&#xff1a;教程 | Vue.js (vuejs.org) 该教程需要前置知识&#xff1a;HTML, CSS, JavaScript 学习前置知识&#xff0c;你可以去 MDN Vue framework 是一个 JavaScript framework&#xff0c;以下简称 Vue&#xff0c;下面是它的特点 声明式渲染&#xff…...

SQLite数据库介绍

文章目录 SQLite常用接口 使用示例测试 SQLite SQLite是一个本地化的数据库,不需要客户端服务端什么的配置,主打就是轻量化方便化 他也不是一个独立的进程,而是可以根据应用程序的需求,可以进行静态或者动态的连接 而且他是直接存储在磁盘文件的,提供了简单易用的API接口 需…...

点击label 按钮起作用

要使点击 标签时能够触发与之关联的表单控件&#xff08;如输入框、复选框或单选按钮&#xff09;的作用&#xff0c;你需要正确地设置 标签的 for 属性&#xff0c;并确保该属性值与表单控件的 id 属性值相匹配。这样&#xff0c;当用户点击 标签时&#xff0c;与之关联的表…...

JPA、Hibernate、MyBatis三种ORM框架怎么选择

JPA&#xff08;Java Persistence API&#xff09;、Hibernate和MyBatis都是Java开发中常用的ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;框架&#xff0c;它们提供了不同的方式来处理数据库交互。在选择这些框架时&#xff0c;需要考虑项目…...

【C++】map详解

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…...

力扣206.反转链表

题目链接&#xff1a;206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5]输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; …...

如何查看服务器的带宽linux服务器

speedtest-cli ubuntu # 安装speedtest-cli sudo apt install speedtest-cli # 执行测试 speedtest --secure # 在其他博客可以看到使用以下的命令&#xff0c;但是我试了没用 speedtest-cli参考&#xff1a; https://ubuntu-mate.community/t/speedtest-cli-error/25722/2…...

云原生化 - 工具镜像(完整版)

在微服务和云原生环境中,容器化的目标之一是尽可能保持镜像小型化以提高启动速度和减少安全风险。然而,在实际操作中,有时候需要临时引入一些工具来进行调试、监控或问题排查。Kubernetes提供了临时容器(ephemeral containers)的功能,允许在不改变原始容器镜像的情况下,…...

leetcode68:文本左右对齐

给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词&#xff1b;也就是说&#xff0c;尽可能多地往每行中放置单词。必要时可…...