C#循环嵌套超全精讲|双层for循环、九九乘法表、嵌套break/continue作用域
前置说明
前面学完:单层 for / while / do-while、break、continue、goto 本节进阶:循环嵌套(多层循环),是考试、作业、算法、上位机逻辑的核心难点。
核心一句话口诀:外层走一步,内层走完整一轮
一、循环嵌套基础规则(双层for)
1. 结构说明
双层循环固定分工:
-
外层循环 i:控制「大轮次、行数、次数」
-
内层循环 j:控制「每一轮的细节、列数、重复次数」
2. 标准完整案例
// 外层循环:执行3次
for (int i = 0; i < 3; i++)
{
Console.WriteLine("-------- 外层循环一轮 --------");
// 内层循环:每次外层循环,完整跑5次
for (int j = 0; j < 5; j++)
{
Console.WriteLine($"外层i={i},内层j={j}");
}
}
3. 执行核心规则(必背)
-
外层循环 执行1次,内层循环 完整跑完所有次数
-
总执行次数 = 外层次数 × 内层次数
-
本例总次数:3 × 5 = 15次内层代码
4. 输出规律
每一轮外层 → 先打印外层提示 → 内层连续打印5行数据 → 外层进入下一轮
二、嵌套经典必考:九九乘法表(左下三角)
1. 完整可运行代码
// i 代表【行数】一共9行
for (int i = 1; i <= 9; i++)
{
// j 代表【列数】第i行,就有i列
for (int j = 1; j <= i; j++)
{
// Write:不换行,横向拼接
Console.Write($"{j}*{i}={j*i}\t");
}
// 一行全部输出完毕,整体换行
Console.WriteLine();
}
2. 核心逻辑拆解(满分理解)
-
外层 i:控制一共多少行(1~9行)
-
内层 j:控制每行输出多少列
-
j <= i:关键条件!实现左下三角
-
第1行:j<=1 → 1列
-
第2行:j<=2 → 2列
-
……
-
第9行:j<=9 → 9列
-
-
Console.Write:不自动换行,横向排版
-
\t 制表符:自动对齐,表格整齐
-
Console.WriteLine():单行结束,整体换行
3. 输出效果预览
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
……
三、重难点:嵌套循环中 break / continue 作用范围
1. 终极铁律(必考易错点🔴)
break、continue 只对「离它最近的那一层循环」生效,就近原则!
-
写在内层循环里 → 只影响内层,外层完全不受影响
-
无法直接跳出多层循环,多层跳出必须用 goto
2. 示范结构代码
for (int i = 0; i < 3; i++) // 外层
{
for (int j = 0; j < 3; j++) // 内层
{
// break / continue 写在这里
// 只能控制 j 内层循环
if (i == 1)
{
// 此处关键字仅作用于内层
}
Console.WriteLine($"i={i},j={j}");
}
}
3. continue 在内层的效果
触发 continue:
-
跳过当前这一次内层循环剩余代码
-
内层 j 继续自增、继续跑
-
外层 i 完全不受影响
4. break 在内层的效果
触发 break:
-
直接彻底终止内层整个循环
-
内层 j 不再继续执行
-
外层 i 正常 ++,继续下一轮外层循环
四、多层循环一次性跳出(goto 终极方案)
普通 break 只能跳出一层,想要直接跳出所有嵌套循环,只能用 goto
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (j == 2)
{
goto endLoop; // 直接跳出所有循环
}
}
}
endLoop: // 跳转标记
Console.WriteLine("所有循环已结束");
五、循环嵌套 满分背诵总结
-
外层控制轮次/行,内层控制细节/列
-
执行规则:外层走一步,内层跑完一整圈
-
总次数 = 外层次数 × 内层次数
-
九九乘法表核心:j <= i 实现三角阶梯效果
-
Write不换行、WriteLine换行、\t对齐
-
break/continue就近生效,只管当前层
-
跳出多层循环唯一简便写法:goto 标记跳转

浙公网安备 33010602011771号