C语言入门笔记 (3)--循环语句

物协 C Gateway Course 3 循环语句详解

引言

在C语言中,循环语句是一种强大的编程结构,允许我们重复执行一组语句。循环语句提供了有效的方法来处理需要反复执行的任务,从而提高了程序的灵活性和效率。C语言中有三种主要的循环语句:forwhiledo-while

1. for循环语句

for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体
}
  • 在C语言中,for 循环的三个表达式的执行顺序如下:

    1. 初始化表达式:for 循环开始时,初始化表达式会被执行一次。这个表达式通常用于初始化循环控制变量,例如 int i = 0;。这个初始化表达式是可选的,你可以在 for 循环中不使用它。

    2. 条件表达式: 在每次循环迭代开始之前,条件表达式会被求值。如果条件为真(非零),则执行循环体;如果条件为假(零),则退出循环。如果条件表达式为空,它被假定为始终为真。

    3. 更新表达式: 在每次循环迭代结束后,更新表达式会被执行。这个表达式通常用于更新循环控制变量的值,例如 i++(递增)或 i--(递减)。这个更新表达式是可选的,你可以在 for 循环中不使用它。

    综合起来,for 循环的执行过程如下:

    1. 执行初始化表达式(一次)。
    2. 求值条件表达式,如果为真执行循环体,否则退出循环。
    3. 执行循环体。
    4. 执行更新表达式。
    5. 回到步骤2,重复以上过程。

    这个流程一直持续,直到条件表达式为假为止,然后程序跳出循环。

2. while循环语句

while (条件表达式) {
    // 循环体
}
  • 条件表达式: 在每次循环迭代前求值,如果条件为真,则执行循环体;如果为假,则退出循环。这是一个必须的表达式,控制循环何时终止。例如,i <= 5 表示只要 i 小于或等于 5 就继续执行循环。

3. do-while循环语句

do {
    // 循环体
} while (条件表达式);
  • 条件表达式: 在每次循环迭代后求值,如果条件为真,则继续执行循环体;如果为假,则退出循环。这是一个必须的表达式,确保循环体至少执行一次。例如,i <= 5 表示只要 i 小于或等于 5 就继续执行循环。

4. 循环控制语句

  • break语句: 用于立即终止循环,跳出循环体。当break语句执行时,程序将跳出当前循环,不再执行循环体内的后续语句,直接执行循环后的代码。

    示例:

    for (int i = 1; i <= 10; i++) {
        if (i == 5) {
            break; // 当 i 等于 5 时,跳出循环
        }
        printf("%d ", i);
    }
    
  • continue语句: 用于跳过当前循环迭代的剩余部分,进入下一次迭代。当continue语句执行时,程序将跳过当前循环体内continue语句之后的部分,直接进行下一次循环迭代。

    示例:

    for (int i = 1; i <= 5; i++) {
        if (i == 3) {
            continue; // 当 i 等于 3 时,跳过本次循环迭代
        }
        printf("%d ", i);
    }
    

5.三种循环之间的区别

forwhiledo-while 是 C 语言中的三种主要循环结构,它们在语法和执行时机上有一些区别:

  1. for 循环:

    • 语法: for (初始化表达式; 条件表达式; 更新表达式) { 循环体 }
    • 执行顺序: 初始化表达式只在循环开始前执行一次,条件表达式在每次迭代前求值,更新表达式在每次迭代结束后执行。
    • 用途: 适用于循环次数已知的情况,例如遍历数组。
    for (int i = 0; i < 5; i++) {
        // 循环体
    }
    
  2. while 循环:

    • 语法: while (条件表达式) { 循环体 }
    • 执行顺序: 条件表达式在每次迭代前求值,如果为真则执行循环体,否则退出循环。
    • 用途: 适用于循环次数不确定但有可能为零的情况。
    int i = 0;
    while (i < 5) {
        // 循环体
        i++;
    }
    
  3. do-while 循环:

    • 语法: do { 循环体 } while (条件表达式);
    • 执行顺序: 先执行循环体,然后条件表达式在每次迭代后求值,如果为真则继续执行循环体,否则退出循环。保证循环体至少执行一次。
    • 用途: 适用于需要确保循环体至少执行一次的情况。
    int i = 0;
    do {
        // 循环体
        i++;
    } while (i < 5);
    

总的来说,这三种循环结构在不同的场景下有不同的应用。选择合适的循环结构取决于具体问题的需求。for 通常用于已知迭代次数的情况,while 适用于不确定次数的情况,而 do-while 用于确保至少执行一次的情况。

6.循环的嵌套

循环的嵌套是指在一个循环结构内部包含另一个或多个循环结构。这种结构可以用来处理复杂的问题,其中需要对问题的多个层面进行迭代。C语言支持循环的嵌套,允许在一个循环体内使用另一个完整的循环结构。

以下是一个简单的例子,展示了两个嵌套的循环,其中外层循环使用 for,而内层循环使用 while

#include <stdio.h>

int main() {
    // 外层循环
    for (int i = 1; i <= 3; i++) {
        printf("外层循环,第 %d 次迭代\n", i);

        // 内层循环
        int j = 1;
        while (j <= 2) {
            printf("  内层循环,第 %d 次迭代\n", j);
            j++;
        }
    }

    return 0;
}

在这个例子中,外层循环执行3次,而内层循环每次在外层循环的一次迭代中执行2次。因此,内层循环的总迭代次数是外层循环次数的两倍。

需要注意的是,循环的嵌套可能会导致代码可读性下降,因此应该谨慎使用。在使用嵌套循环时,确保代码结构清晰,并使用适当的缩进和注释来使代码易于理解。

循环的嵌套在处理多维数组、矩阵,或者需要对问题的多个层面进行迭代的情况下非常有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值