前言

这一节我们将学习循环的的相关知识,可能会涉及到一些C++的基本语法以及C++变量类型、C++变量作用域、C++常量等的相关知识,如果你还有不明白的,请到C++基本语法C++变量类型C++变量作用域C++常量这里温故一下

C++循环

在编程中,我们经常会遇到需要重复做同一件事情的情况。通常,代码是按照顺序一行一行执行的:先执行第一行,然后是第二行,以此类推。但是,有时候我们想让某段代码重复执行多次,而不是只执行一次。这时候,就需要用到编程语言提供的控制结构,它们可以让代码的执行路径变得更加灵活和复杂。
简单来说,控制结构就像是代码的“交通规则”,它们告诉我们代码应该如何“行驶”。在C++中,有几种常用的控制结构可以帮助我们实现代码的重复执行,比如循环。循环就像是设置了“循环播放”模式,让某段代码可以按照我们指定的次数或者条件,一遍又一遍地执行。
通过使用循环,我们可以更高效地处理重复的任务,而不需要手动复制粘贴大量的代码。这样不仅可以节省时间,还可以减少错误,让代码更加简洁和易于维护。

循环类型


循环类型

在编程中,循环用于重复执行一段代码,直到满足某个条件为止。C++ 提供了几种常用的循环结构,让我们来一一了解它们。

1. while 循环

  • 基本概念while 循环会在每次执行循环体之前,先检查一个条件。如果条件为真(true),就执行循环体的代码;如果条件为假(false),就结束循环。

  • 语法

    1
    2
    3
    while (条件) {
    // 循环体(要重复执行的代码)
    }
  • 示例

    1
    2
    3
    4
    5
    int i = 0;
    while (i < 5) {
    cout << "i = " << i << endl;
    i++;
    }

    解释:这个循环会从 i = 0 开始,每次输出 i 的值,然后将 i 加 1,直到 i 不小于 5。

2. for 循环

  • 基本概念for 循环适合在你知道要循环多少次的情况下使用。它把循环变量的初始化、条件判断和更新都放在一行,便于管理。

  • 语法

    1
    2
    3
    for (初始化; 条件; 更新) {
    // 循环体
    }
  • 示例

    1
    2
    3
    for (int i = 0; i < 5; i++) {
    cout << "i = " << i << endl;
    }

    解释:这个循环与上面的 while 循环功能相同,但写法更紧凑。

3. do...while 循环

  • 基本概念do...while 循环会先执行一次循环体,然后再检查条件是否满足。这意味着即使条件一开始为假,循环体也会执行一次。

  • 语法

    1
    2
    3
    do {
    // 循环体
    } while (条件);
  • 示例

    1
    2
    3
    4
    5
    int i = 0;
    do {
    cout << "i = " << i << endl;
    i++;
    } while (i < 5);

    解释:即使 i 一开始就不小于 5,循环体也会执行一次。

4. 嵌套循环

  • 基本概念:你可以在一个循环内部再放入一个循环,称为嵌套循环。这在需要遍历多维数据时非常有用。

  • 示例

    1
    2
    3
    4
    5
    for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 2; j++) {
    cout << "i = " << i << ", j = " << j << endl;
    }
    }

    解释:外层循环控制 i,内层循环控制 j,总共会输出 6 组组合。


循环控制语句

有时候,我们需要在循环过程中改变正常的执行流程,比如提前结束循环或跳过某次循环。C++ 提供了以下控制语句。

1. break 语句

  • 基本概念break 用于立即退出所在的循环或 switch 语句,程序会继续执行循环或 switch 后面的代码。

  • 示例

    1
    2
    3
    4
    5
    6
    for (int i = 0; i < 10; i++) {
    if (i == 5) {
    break; // 当 i 等于 5 时,退出循环
    }
    cout << "i = " << i << endl;
    }

    解释:这个循环在 i 等于 5 时,会提前结束,不再继续循环。

2. continue 语句

  • 基本概念continue 用于跳过当前循环的剩余代码,立即开始下一次循环的判断。

  • 示例

    1
    2
    3
    4
    5
    6
    for (int i = 0; i < 5; i++) {
    if (i == 2) {
    continue; // 跳过当前循环,i == 2 时不执行下面的代码
    }
    cout << "i = " << i << endl;
    }

    解释:当 i 等于 2 时,continue 会跳过 cout,因此不会输出 i = 2

3. goto 语句

  • 基本概念goto 可以无条件地跳转到程序中标记的位置。但由于它可能导致代码难以阅读和维护,一般不推荐使用

  • 示例

    1
    2
    3
    4
    5
    6
    7
    int i = 0;
    start:
    if (i < 5) {
    cout << "i = " << i << endl;
    i++;
    goto start;
    }

    解释:这段代码使用 goto 模拟了一个循环。


无限循环

  • 基本概念:如果循环的条件永远为真,那么循环将永远执行下去,这就是无限循环

  • 用法

    1
    2
    3
    while (true) {
    // 无限循环的代码
    }

    或者

    1
    2
    3
    for (;;) {
    // 无限循环的代码
    }
  • 示例

    1
    2
    3
    for (;;) {
    cout << "This loop will run forever." << endl;
    }

    解释for 循环的三个部分(初始化、条件、更新)都可以省略,如果条件部分被省略,默认视为真,所以循环会无限执行。

  • 注意:在实际编程中,需要确保有机制能跳出无限循环,比如在循环体内使用 break,或者在某种条件下退出。否则,程序可能会卡住。

  • 终止无限循环的方法:在命令行环境下,可以按 Ctrl + C 终止程序的执行。