C++ 嵌套循环

一个循环内另一个循环称为嵌套循环。让我们举个例子,

假设我们想连续 3 周每天都循环一次。

为了实现这一点,我们可以创建一个循环迭代三次(3 周)。然后在循环内部,我们可以创建另一个循环迭代 7 次(7 天)。这就是我们可以使用嵌套循环的方式。


示例:嵌套 for 循环

// C++ program to display 7 days of 3 weeks

#include <iostream>
using namespace std;

int main() {
    int weeks = 3, days_in_week = 7;

    for (int i = 1; i <= weeks; ++i) {
        cout << "Week: " << i << endl;

        for (int j = 1; j <= days_in_week; ++j) {
            cout << "    Day:" << j << endl;
        }
    }

    return 0;
}

输出

Week: 1
    Day:1
    Day:2
    Day:3
    ... .. ...
Week: 2
    Day:1
    Day:2
    Day:3
    ... ... ..

我们可以用 while 和 do...while 以类似的方式创建嵌套循环。


示例:显示图案

// C++ program to display a pattern
// with 5 rows and 3 columns

#include <iostream>
using namespace std;

int main() {

   int rows = 5;
   int columns = 3;

   for (int i = 1; i <= rows; ++i) {
      for (int j = 1; j <= columns; ++j) {
         cout << "*  ";
      }
      cout << endl;
   }

   return 0;
}

输出

*  *  *  
*  *  *  
*  *  *  
*  *  *  
*  *  *  

在此程序中,外层循环从 1 迭代到 rows

内层循环从 1 迭代到 columns。在内层循环中,我们打印字符 '*'


嵌套循环中的 break 和 continue

当我们在内层循环中使用 break 语句时,它会终止内层循环,但不会终止外层循环。例如,

示例:嵌套循环内的 break

#include <iostream>
using namespace std;

int main() {
    int weeks = 3, days_in_week = 7;

    for (int i = 1; i <= weeks; ++i) {
        cout << "Week: " << i << endl;

        for (int j = 1; j <= days_in_week; ++j) {
            // break during the 2nd week
            if (i == 2) {
                break;
            }
            cout << "    Day:" << j << endl;
        }
    }
}

输出

Week: 1
    Day:1
    Day:2
    ... .. ...
Week: 2
Week: 3
    Day:1
    Day:2
    ... .. ...

此程序在 i 的值为 2 时不运行内层循环,即不打印第二周的日期。打印周的外层循环不受影响。


类似地,当我们使用 continue 语句在内层循环中时,它只跳过内层循环的当前迭代。外层循环不受影响。例如,

示例:嵌套循环内的 continue

#include <iostream>
using namespace std;

int main() {
    int weeks = 3, days_in_week = 7;

    for (int i = 1; i <= weeks; ++i) {
        cout << "Week: " << i << endl;

        for (int j = 1; j <= days_in_week; ++j) {
            // continue if the day is an odd number
            if (j % 2 != 0) {
                continue;
            }
            cout << "    Day:" << j << endl;
        }
    }
}

输出

Week: 1
    Day:2
    Day:4
    Day:6
Week: 2
    Day:2
    Day:4
    Day:6
Week: 3
    Day:2
    Day:4
    Day:6

此程序仅打印偶数日。

每当 days_in_week 是奇数时,continue 语句会跳过内层循环的该迭代。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战