6. 循环语句——编程世界的“重复魔法师”

6.1 为什么需要循环语句

在生活中,我们常常会遇到需要重复做某件事情的情况。比如,你要写 100 遍“好好学习,天天向上”;或者计算从 1 加到 100 的和。如果没有循环语句,在编程里我们就得把相同的代码写很多遍,这不仅麻烦,还容易出错。而循环语句可以让我们只写一次代码,然后让计算机按照我们设定的规则重复执行,大大提高了编程的效率。

6.2 while 循环

基本语法 while 循环会在条件表达式为 true 时,不断地执行循环体里的代码块。其基本语法如下:

while (条件表达式) {
    // 循环体,当条件表达式为 true 时执行的代码块
}

只要条件表达式的值为 true,循环体就会一直执行。每次执行完循环体后,会再次判断条件表达式的值,如果仍然为 true,则继续执行循环体;如果为 false,则跳出循环。

示例代码

#include <iostream>
using namespace std;

int main() {
    int i = 1;
    while (i <= 5) {
        cout << i << " ";
        i++;
    }
    cout << endl;
    return 0;
}

在这个程序中,定义了一个变量 i 并初始化为 1。然后进入 while 循环,只要 i 小于等于 5,就会执行循环体里的代码,输出 i 的值,并将 i 的值加 1。当 i 的值变为 6 时,条件表达式 i <= 5false,循环结束。

6.3 do – while 循环

基本语法 do – while 循环和 while 循环类似,但它会先执行一次循环体,然后再判断条件表达式的值。其基本语法如下:

do {
    // 循环体,先执行一次的代码块
} while (条件表达式);

不管条件表达式的值一开始是 true 还是 false,循环体都会至少执行一次。执行完循环体后,再判断条件表达式的值,如果为 true,则继续执行循环体;如果为 false,则跳出循环。

示例代码

#include <iostream>
using namespace std;

int main() {
    int i = 1;
    do {
        cout << i << " ";
        i++;
    } while (i <= 5);
    cout << endl;
    return 0;
}

这个程序和上面 while 循环的示例功能相同,只是使用了 do – while 循环。即使 i 的初始值一开始就不满足条件,循环体也会先执行一次。

6.4 for 循环

基本语法 for 循环通常用于已知循环次数的情况,它把循环的初始化、条件判断和循环变量的更新都放在一个语句里。其基本语法如下:

for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体,满足条件时执行的代码块
}

初始化表达式在循环开始前执行一次,用于初始化循环变量;条件表达式在每次循环开始前进行判断,如果为 true,则执行循环体;更新表达式在每次循环体执行完后执行,用于更新循环变量的值。

示例代码

#include <iostream>
using namespace std;

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

在这个程序中,int i = 1 是初始化表达式,将循环变量 i 初始化为 1;i <= 5 是条件表达式,只要 i 小于等于 5,就会执行循环体;i++ 是更新表达式,每次循环结束后将 i 的值加 1。

6.5 循环的嵌套

在一个循环的循环体里还可以再嵌套另一个循环,这就是循环的嵌套。常见的有双重循环,用于处理二维的数据,比如打印一个矩阵。

示例代码

#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 3; i++) {
        for (int j = 1; j <= 3; j++) {
            cout << "(" << i << ", " << j << ") ";
        }
        cout << endl;
    }
    return 0;
}

在这个程序中,外层的 for 循环控制行数,内层的 for 循环控制列数。每次外层循环执行一次,内层循环会完整地执行一遍,从而打印出一个 3×3 的矩阵坐标。

6.6 break 和 continue 语句

  • break 语句:用于跳出当前所在的循环,无论循环条件是否满足。
#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 10; i++) {
        if (i == 5) {
            break;
        }
        cout << i << " ";
    }
    cout << endl;
    return 0;
}

在这个程序中,当 i 的值等于 5 时,执行 break 语句,跳出 for 循环,所以只输出 1 到 4。

  • continue 语句:用于跳过当前循环体中剩余的代码,直接进入下一次循环。
#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 10; i++) {
        if (i == 5) {
            continue;
        }
        cout << i << " ";
    }
    cout << endl;
    return 0;
}

在这个程序中,当 i 的值等于 5 时,执行 continue 语句,跳过本次循环中 cout << i << " "; 这行代码,直接进入下一次循环,所以输出结果中不包含 5。

6.7 课后小练习

  1. 编写一个程序,使用 while 循环计算从 1 加到 100 的和。
  2. 编写一个程序,使用 for 循环打印出九九乘法表。

通过这部分的学习,你已经掌握了 C++ 中的循环语句,它们能让你的程序轻松地处理需要重复执行的任务,使程序更加高效和强大。

类似文章

发表回复