一、双层for循环核心概念定义由外循环外层控制整体次数和内循环内层控制单次外层循环的执行次数组成内层循环嵌套在外层循环的循环体中。核心特点外循环执行1次内循环执行完整一轮直到内循环条件不成立再执行外循环的迭代表达式进入下一次外循环以此类推。命名规范外循环计数器常用i内循环计数器常用j避免变量名重复引发语法错误若有三层及以上循环可依次用k、l等。二、双层for循环核心语法// 外循环控制整体循环次数 for (int i 0; i 外循环条件; i) { // 外循环体可包含普通代码、内循环 for (int j 0; j 内循环条件; j) { // 内循环体外循环每执行1次内循环执行完整一轮 } }三、双层for循环执行顺序重点必记执行顺序与单层for循环一致核心是“外循环1次内循环一轮”具体流程如下结合示例详解示例1基础双层for循环理解执行顺序for (int i 0; i 3; i) // 外循环控制3次 { Console.WriteLine(i的值为 i);// 外循环体代码 for (int j 0; j 3; j) // 内循环每次外循环内循环执行3次 { Console.WriteLine(j的值为 j); } }详细执行流程外循环初始化i0→ 判断i3成立 → 执行外循环体打印“i的值为0”内循环初始化j0→ 判断j3成立 → 打印“j的值为0” →jj1内循环判断j3成立 → 打印“j的值为1” →jj2内循环判断j3成立 → 打印“j的值为2” →jj3内循环判断j3不成立 → 内循环终止执行外循环迭代表达式ii1重复步骤1-5直到外循环i3条件不成立整个双层循环终止。输出规律i0时j0、1、2i1时j0、1、2i2时j0、1、2外循环3次内循环每次3次共执行3×39次内循环体。四、break和continue在双层for循环中的用法重点核心规则break/continue仅作用于当前所在的循环内循环的break/continue不影响外循环外循环的break/continue不影响内循环。示例1内循环中使用break终止当前内循环进入下一次外循环for (int i 0; i 3; i) { for (int j 0; j 3; j) { Console.WriteLine($i的值为{i},j的值为{j}); if (j 2) { break; // 仅终止当前内循环外循环继续执行 } } }输出结果i0时j0、1、2i1时j0、1、2i2时j0、1、2break在j2时触发内循环终止但外循环正常执行。示例2内循环中break在判断后跳过j2的打印for (int i 0; i 3; i) { for (int j 0; j 3; j) { if (j 2) { break; // j2时终止内循环不执行后续打印 } Console.WriteLine($i的值为{i},j的值为{j}); } }输出结果i0时j0、1i1时j0、1i2时j0、1j2时触发break跳过打印内循环终止。示例3内循环中使用continue跳过当前内循环继续下一次内循环for (int i 0; i 3; i) { for (int j 0; j 3; j) { if (j 1) { continue; // 跳过j1的本次内循环不执行后续打印继续j2的循环 } Console.WriteLine($i的值为{i},j的值为{j}---------); } }示例4内循环中嵌套break和continue多条件控制for (int i 0; i 3; i) { for (int j 0; j 3; j) { if (i 1) { break; // i1时终止当前内循环进入i2的外循环 } if (j 1) { continue; // j1时跳过本次内循环打印 } Console.WriteLine($i的值为{i},j的值为{j}); } }示例5外循环中使用break终止整个双层循环for (int i 0; i 3; i) { if (i 1) { break; // 外循环i1时终止整个双层循环内循环也不再执行 } for (int j 0; j 3; j) { if (j 1) { continue; } Console.WriteLine($i的值为{i},j的值为{j}???????); } }输出结果仅i0时j0、2外循环i1触发break整个双层循环终止i2不再执行。五、双层for循环实战应用重点场景双层for循环核心应用打印图形、九九乘法表、二维数组遍历等核心是通过外循环控制“行”内循环控制“列”。应用1打印九九乘法表需求打印标准九九乘法表共9行第i行有i个表达式1×i、2×i、...、i×i。// 外循环控制行数1~9行共9次 for (int i 1; i 9; i) { // 内循环控制每行的表达式个数第i行有i个表达式j从1到i for (int j 1; j i; j) { // Console.Write不换行让同一行的表达式连在一起 Console.Write(${j}*{i}{j * i} ); } Console.WriteLine();// 每一行结束后换行进入下一行 }关键逻辑外循环i控制行数1~9内循环j控制每行的表达式个数j≤iConsole.Write保证同一行不换行Console.WriteLine实现换行。应用2打印等腰直角三角形☆组成需求打印3行等腰直角三角形第i行有i1个☆i从0开始。// 外循环控制行数3行i从0到2 for (int i 0; i 3; i) { // 内循环控制每行的☆个数第i行有i1个j从0到i for (int j 0; j i; j) { Console.Write(☆ ); // 不换行打印☆和空格 } Console.WriteLine();// 每行结束换行 }输出效果 ☆☆ ☆☆ ☆ ☆应用3打印等腰三角形☆组成需求打印4行等腰三角形每行☆个数为奇数1、3、5、7每行前有对应空格实现居中效果。// 外循环控制行数4行i从0到3 for (int i 0; i 4; i) { // 第一个内循环打印每行前的空格实现居中空格数随i递增而减少 for (int z 0; z 2 * (3 - i); z) { Console.Write( ); } // 第二个内循环打印每行的☆个数为2*i1奇数递增 for (int j 0; j 2 * i 1; j) { Console.Write(☆); } Console.WriteLine();// 每行结束换行 Console.WriteLine(); // 增加换行让图形更舒展 }关键逻辑1. 空格循环空格数 2×(3 - i)i0时6个空格i1时4个空格依次递减2个实现居中2. ☆循环☆个数 2×i 1i0时1个i1时3个依次递增2个形成等腰效果。六、易错点提醒高频踩坑外循环和内循环计数器变量名重复如都用i导致语法错误混淆break/continue的作用范围误以为内循环的break能终止外循环打印图形时误用Console.WriteLine换行和Console.Write不换行导致图形错乱内循环条件设置错误如打印九九乘法表时j的条件写成j9导致每行表达式个数错误外循环或内循环忘记写迭代表达式如i、j导致死循环。七、核心总结双层for循环外循环控制“行”整体次数内循环控制“列”单次外循环的次数外循环1次内循环一轮执行顺序外循环初始化 → 外循环条件判断 → 外循环体内循环完整执行 → 外循环迭代 → 重复break/continue仅作用于当前所在循环内循环不影响外循环外循环终止则整个双层循环终止核心应用打印图形直角三角形、等腰三角形、九九乘法表本质是“行列”的双重控制避坑关键区分变量名、正确使用换行方法、精准设置内循环条件、避免死循环。
C#双层for循环
一、双层for循环核心概念定义由外循环外层控制整体次数和内循环内层控制单次外层循环的执行次数组成内层循环嵌套在外层循环的循环体中。核心特点外循环执行1次内循环执行完整一轮直到内循环条件不成立再执行外循环的迭代表达式进入下一次外循环以此类推。命名规范外循环计数器常用i内循环计数器常用j避免变量名重复引发语法错误若有三层及以上循环可依次用k、l等。二、双层for循环核心语法// 外循环控制整体循环次数 for (int i 0; i 外循环条件; i) { // 外循环体可包含普通代码、内循环 for (int j 0; j 内循环条件; j) { // 内循环体外循环每执行1次内循环执行完整一轮 } }三、双层for循环执行顺序重点必记执行顺序与单层for循环一致核心是“外循环1次内循环一轮”具体流程如下结合示例详解示例1基础双层for循环理解执行顺序for (int i 0; i 3; i) // 外循环控制3次 { Console.WriteLine(i的值为 i);// 外循环体代码 for (int j 0; j 3; j) // 内循环每次外循环内循环执行3次 { Console.WriteLine(j的值为 j); } }详细执行流程外循环初始化i0→ 判断i3成立 → 执行外循环体打印“i的值为0”内循环初始化j0→ 判断j3成立 → 打印“j的值为0” →jj1内循环判断j3成立 → 打印“j的值为1” →jj2内循环判断j3成立 → 打印“j的值为2” →jj3内循环判断j3不成立 → 内循环终止执行外循环迭代表达式ii1重复步骤1-5直到外循环i3条件不成立整个双层循环终止。输出规律i0时j0、1、2i1时j0、1、2i2时j0、1、2外循环3次内循环每次3次共执行3×39次内循环体。四、break和continue在双层for循环中的用法重点核心规则break/continue仅作用于当前所在的循环内循环的break/continue不影响外循环外循环的break/continue不影响内循环。示例1内循环中使用break终止当前内循环进入下一次外循环for (int i 0; i 3; i) { for (int j 0; j 3; j) { Console.WriteLine($i的值为{i},j的值为{j}); if (j 2) { break; // 仅终止当前内循环外循环继续执行 } } }输出结果i0时j0、1、2i1时j0、1、2i2时j0、1、2break在j2时触发内循环终止但外循环正常执行。示例2内循环中break在判断后跳过j2的打印for (int i 0; i 3; i) { for (int j 0; j 3; j) { if (j 2) { break; // j2时终止内循环不执行后续打印 } Console.WriteLine($i的值为{i},j的值为{j}); } }输出结果i0时j0、1i1时j0、1i2时j0、1j2时触发break跳过打印内循环终止。示例3内循环中使用continue跳过当前内循环继续下一次内循环for (int i 0; i 3; i) { for (int j 0; j 3; j) { if (j 1) { continue; // 跳过j1的本次内循环不执行后续打印继续j2的循环 } Console.WriteLine($i的值为{i},j的值为{j}---------); } }示例4内循环中嵌套break和continue多条件控制for (int i 0; i 3; i) { for (int j 0; j 3; j) { if (i 1) { break; // i1时终止当前内循环进入i2的外循环 } if (j 1) { continue; // j1时跳过本次内循环打印 } Console.WriteLine($i的值为{i},j的值为{j}); } }示例5外循环中使用break终止整个双层循环for (int i 0; i 3; i) { if (i 1) { break; // 外循环i1时终止整个双层循环内循环也不再执行 } for (int j 0; j 3; j) { if (j 1) { continue; } Console.WriteLine($i的值为{i},j的值为{j}???????); } }输出结果仅i0时j0、2外循环i1触发break整个双层循环终止i2不再执行。五、双层for循环实战应用重点场景双层for循环核心应用打印图形、九九乘法表、二维数组遍历等核心是通过外循环控制“行”内循环控制“列”。应用1打印九九乘法表需求打印标准九九乘法表共9行第i行有i个表达式1×i、2×i、...、i×i。// 外循环控制行数1~9行共9次 for (int i 1; i 9; i) { // 内循环控制每行的表达式个数第i行有i个表达式j从1到i for (int j 1; j i; j) { // Console.Write不换行让同一行的表达式连在一起 Console.Write(${j}*{i}{j * i} ); } Console.WriteLine();// 每一行结束后换行进入下一行 }关键逻辑外循环i控制行数1~9内循环j控制每行的表达式个数j≤iConsole.Write保证同一行不换行Console.WriteLine实现换行。应用2打印等腰直角三角形☆组成需求打印3行等腰直角三角形第i行有i1个☆i从0开始。// 外循环控制行数3行i从0到2 for (int i 0; i 3; i) { // 内循环控制每行的☆个数第i行有i1个j从0到i for (int j 0; j i; j) { Console.Write(☆ ); // 不换行打印☆和空格 } Console.WriteLine();// 每行结束换行 }输出效果 ☆☆ ☆☆ ☆ ☆应用3打印等腰三角形☆组成需求打印4行等腰三角形每行☆个数为奇数1、3、5、7每行前有对应空格实现居中效果。// 外循环控制行数4行i从0到3 for (int i 0; i 4; i) { // 第一个内循环打印每行前的空格实现居中空格数随i递增而减少 for (int z 0; z 2 * (3 - i); z) { Console.Write( ); } // 第二个内循环打印每行的☆个数为2*i1奇数递增 for (int j 0; j 2 * i 1; j) { Console.Write(☆); } Console.WriteLine();// 每行结束换行 Console.WriteLine(); // 增加换行让图形更舒展 }关键逻辑1. 空格循环空格数 2×(3 - i)i0时6个空格i1时4个空格依次递减2个实现居中2. ☆循环☆个数 2×i 1i0时1个i1时3个依次递增2个形成等腰效果。六、易错点提醒高频踩坑外循环和内循环计数器变量名重复如都用i导致语法错误混淆break/continue的作用范围误以为内循环的break能终止外循环打印图形时误用Console.WriteLine换行和Console.Write不换行导致图形错乱内循环条件设置错误如打印九九乘法表时j的条件写成j9导致每行表达式个数错误外循环或内循环忘记写迭代表达式如i、j导致死循环。七、核心总结双层for循环外循环控制“行”整体次数内循环控制“列”单次外循环的次数外循环1次内循环一轮执行顺序外循环初始化 → 外循环条件判断 → 外循环体内循环完整执行 → 外循环迭代 → 重复break/continue仅作用于当前所在循环内循环不影响外循环外循环终止则整个双层循环终止核心应用打印图形直角三角形、等腰三角形、九九乘法表本质是“行列”的双重控制避坑关键区分变量名、正确使用换行方法、精准设置内循环条件、避免死循环。