今天来聊聊Java里的嵌套循环。这种结构就像俄罗斯套娃,大娃娃里面套着小娃娃,一层套一层。想象一下剥洋葱的过程,外层是整颗洋葱,内层是每一片洋葱瓣,这就是嵌套循环的生动写照。
嵌套循环工作方式
嵌套循环的工作方式特别像学校里的点名流程:
- 外层循环:老师按班级顺序走(1班、2班、3班…)
- 内层循环:在每个班级里,按学号顺序点名(1号、2号、3号…)
这种"大循环套小循环"的结构,特别适合处理有层次关系的数据。
基本语法结构
for(外层初始化; 外层条件; 外层迭代) {
for(内层初始化; 内层条件; 内层迭代) {
// 循环体
}
}
这种结构就像工厂的生产线,外层是产品组装流程,内层是每个零件的加工步骤。
案例分析
九九乘法表
编写一个程序利用嵌套循环实现九九乘法表。
# 源文件保存为“MultiplicationTable.java”
public class MultiplicationTable {
public static void main(String[] args) {
System.out.println("九九乘法表:");
for(int i = 1; i <= 9; i++) {
// 外层控制行数
for(int j = 1; j <= i; j++) {
// 内层控制列数
System.out.printf("%d×%d=%-2d ", j, i, i*j); // 格式化输出
}
System.out.println(); // 换行
}
}
}
运行结果
九九乘法表:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
代码解析:
- 外层循环变量i控制行数,从1到9
- 内层循环变量j控制每行的列数,从1到当前行数i
- printf格式化输出保持对齐,"%-2d"表示左对齐,占2位
- 每行结束后换行
这个例子展示了嵌套循环处理二维问题的天然优势,就像写乘法表时先确定行再确定列一样自然。
学生成绩统计
编写一个程序,利用嵌套循环统计多个班级的学生成绩。
# 源文件保存为“GradeStatistics.java”
import java.util.Scanner;
public class GradeStatistics {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入班级数量:");
int classCount = scanner.nextInt();
for(int classNo =