多重循环在Java中的应用
介绍
多重循环是将一个循环嵌套在另一个循环体内的编程结构。Java中的 for
、while
和 do...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();
}
}
}
结果
运行上述代码将输出班级的平均分和及格人数,以及九九乘法表的结果。这些练习不仅加深了对多重循环的理解,也提供了实际应用的示例。