返回 课程

信奥AC之路-2级

0% 完成
0/0 步骤
  1. 第一课:字符
    5 主题|小节
  2. 第二课 嵌套循环与矩形图案(一)
    4 主题|小节
  3. 第三课 嵌套循环与矩形图案(二)
    3 主题|小节
  4. 第四课:矩形三
    5 主题|小节
  5. 第五课:字符矩形
    7 主题|小节
  6. 第六课:直角三角形
    6 主题|小节
  7. 第七课:倒三角形
    7 主题|小节
  8. 第八课:字符三角形
    8 主题|小节
  9. 第九课:字符倒三角形
    7 主题|小节
  10. 第十课:平行四边形
    6 主题|小节
  11. 第十一课:字符直角三角形
    5 主题|小节
  12. 第十二课:左斜三角形
    6 主题|小节
  13. 第十三课:等腰三角形
    6 主题|小节
  14. 第十四课:倒置等腰三角形
    7 主题|小节
  15. 第十五课:上下对称图形
    4 主题|小节
  16. 第十六课:复杂对称图形
    5 主题|小节
  17. 第十七课:左右对称图形
    5 主题|小节
  18. 第十八课:空心图形
    5 主题|小节
  19. 第十九课:空心图形
    3 主题|小节
  20. 第二十课:嵌套应用
    4 主题|小节
  21. 第二十一课:嵌套应用二
    4 主题|小节
  22. 第二十二课:嵌套应用三
    3 主题|小节
  23. 第二十三课:嵌套应用四
    3 主题|小节
课 2, 主题|小节 1
进行中

2.1 嵌套循环的基本语法

2026年1月16日
课 进展
0% 完成

“嵌套循环,”我微笑着解释道,”就像是一个循环里面包含着另一个循环,就像是一个盒子里面放着另一个盒子!这样可以让我们的程序更加强大,能够处理二维的问题,比如创建图形和表格。”

2.1.1 嵌套循环的不同形式

// for循环嵌套for循环
for(初始化表达式; 条件表达式; 更新表达式){ // 外循环:通常控制行数
    for(初始化表达式; 条件表达式; 更新表达式){ // 内循环:通常控制列数
        // 内部循环执行语句
    }
    // 外部循环执行语句
}

// while循环嵌套while循环
while(条件语句){ // 外循环
    while(条件语句){ // 内循环
        // 内部循环执行语句
    }
    // 外部循环执行语句
}

// for循环嵌套while循环
for(初始化表达式; 条件表达式; 更新表达式){ // 外循环
    while(条件语句){ // 内循环
        // 内部循环执行语句
    }
    // 外部循环执行语句
}

// while循环嵌套for循环
while(条件语句){ // 外循环
    for(初始化表达式; 条件表达式; 更新表达式){ // 内循环
        // 内部循环执行语句
    }
    // 外部循环执行语句
}

2.1.2 嵌套循环的执行流程

“嵌套循环有一个重要的执行规律,”我继续解释道,”外部循环每执行一次,内部循环都会完整地执行一遍。这就像时钟的时针和分针,时针走一格(外循环),分针要走一整圈(内循环)。”

例如,如果我们想输出一行五个星号,代码很简单:

for(int j=1; j<=5; j++){ // 循环5次
    cout << '*'; // 输出一个星号
}
cout << endl; // 换行

但如果我们想输出5行,每行5个星号,那么就需要在外面再套一个循环:

// 输出5行,每行5个星号
for(int i=1; i<=5; i++){      // 控制行数,外循环
    for(int j=1; j<=5; j++){  // 控制每行的星号数,内循环
        cout << '*';          // 输出一个星号
    }
    cout << endl;             // 每行结束后换行
}

嵌套循环的执行流程

  1. 外部循环初始化(i=1)
  2. 检查外部循环条件(i<=5),为真,进入外部循环体
  3. 内部循环初始化(j=1)
  4. 检查内部循环条件(j<=5),为真,进入内部循环体
  5. 执行内部循环体语句(输出’*’)
  6. 内部循环更新(j++),j变为2
  7. 重复步骤4-6,直到j>5
  8. 内部循环结束,执行外部循环体中内部循环之后的语句(换行)
  9. 外部循环更新(i++),i变为2
  10. 重复步骤2-9,直到i>5