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

news/2024/10/9 2:35:47/

多重循环在Java中的应用

在这里插入图片描述

介绍

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

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

示例

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

多重循环执行步骤分析

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

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

应用实例

练习一:班级成绩统计

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

java">
//化繁为简
//(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);}
}

在这里插入图片描述

练习二:九九乘法表

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

java">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();}}
}

结果

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



http://www.ppmy.cn/news/1536424.html

相关文章

SpringBoot之Profile的两种使用方式

0. 需求 通常项目开发过程中&#xff0c;会经历多种环境转换&#xff0c;典型的如开发环境(dev)、测试环境(test)和生产环境(prod)。在这三种不同的环境下&#xff0c;连接数据库时使用的配置信息是不同的&#xff0c;即三个不同环境对应三个不同的数据库。 现在的需求是&#…

留存率的定义与SQL实现

1.什么是留存率 留存率是指在特定时间段内&#xff0c;仍然继续使用某项产品或服务的用户占用户总数的百分比。 通常&#xff0c;留存率会以日&#xff0c;周&#xff0c;或月为单位进行统计和分析。 2.SQL留存率常见问题 1.计算新用户登录的日期的次日留存率以及3日留存率 …

android + tflite 分类APP开发-1

使用自己的数据集训练模型进行图像分类 安装Model Maker 软件包 sudo apt -y install libportaudio2pip install -q tflite-model-maker 准备数据集 文件夹下各类别子文件夹&#xff0c;图片文件 导入包 import osimport numpy as npimport tensorflow as tf assert tf._…

动态规划10:174. 地下城游戏

动态规划解题步骤&#xff1a; 1.确定状态表示&#xff1a;dp[i]是什么 2.确定状态转移方程&#xff1a;dp[i]等于什么 3.初始化&#xff1a;确保状态转移方程不越界 4.确定填表顺序&#xff1a;根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接&#xff1a;174.…

Webstorm 中对 Node.js 后端项目进行断点调试

首先&#xff0c;肯定需要有一个启动服务器的命令脚本。 然后&#xff0c;写一个 debug 的配置&#xff1a; 然后&#xff0c;debug 模式 启动项目和 启动调试服务&#xff1a; 最后&#xff0c;发送请求&#xff0c;即可调试&#xff1a; 这几个关键按钮含义&#xff1a; 重启…

【C++ 11】nullptr 空指针

文章目录 【 0. 问题背景 】0.1 野指针和悬空指针0.2 传统空指针 NULL0.3 传统空指针的局限性 【 1. 基本用法 】【 2. nullptr 的应用 】2.1 nullptr 解决 NULL 的遗留BUG2.2 简单实例 【 0. 问题背景 】 0.1 野指针和悬空指针 总结 野指针悬空指针产生原因指针变量未被初始…

23.1 k8s监控中标签relabel的应用和原理

本节重点介绍 : relabel的源码在 7.7节做过详细的解读强大的relabel能力 在k8s中的应用 应用1&#xff1a; labelmap 在采集cadvisor指标时 对服务发现标签key名字截取应用2&#xff1a; 采集pod自定义指标中replace 和 keep的应用应用3&#xff1a; k8s服务组件采集时的endpo…

如何高效使用Prompt与AI大模型对话

一、如何与人工智能对话 在人工智能的世界里&#xff0c;提示词&#xff08;Prompt&#xff09;就像是一把钥匙&#xff0c;能够解锁AI智能助手的潜力&#xff0c;帮助你更高效地获取信息、解决问题。但如何正确使用这把钥匙&#xff0c;却是一门艺术。本文将带你了解提示词的…