C 语言中的循环语句
                           
天天向上
发布: 2025-03-30 21:52:30

原创
797 人浏览过

C 语言提供了多种循环语句,主要用于在满足特定条件时重复执行某一段代码。这些循环语句包括 for 循环、while 循环、do-while 循环等。

1. for 循环

for 循环用于在已知迭代次数的情况下执行一段代码。它由三部分组成:

  • 初始化:通常用来定义一个变量并给它一个初值。
  • 条件判断:当条件为真时,继续执行循环。
  • 迭代更新:每次循环结束时更新循环变量。
for (initialization; condition; increment/decrement) {
    // 执行的代码
}

示例:

#include <stdio.h>

int main() {
    for (int i = 0; i < 5; i++) {
        printf("i = %d\n", i);
    }
    return 0;
}

输出:

i = 0
i = 1
i = 2
i = 3
i = 4

2. while 循环

while 循环用于在条件为真时反复执行代码块。当条件首次不满足时,循环停止。

while (condition) {
    // 执行的代码
}

示例:

#include <stdio.h>

int main() {
    int i = 0;
    while (i < 5) {
        printf("i = %d\n", i);
        i++;
    }
    return 0;
}

输出:

i = 0
i = 1
i = 2
i = 3
i = 4

3. do-while 循环

do-while 循环与 while 循环类似,区别在于 do-while 循环总是至少执行一次。即使条件最初不满足,代码也会先执行一次,然后再判断条件。

do {
    // 执行的代码
} while (condition);

示例:

#include <stdio.h>

int main() {
    int i = 0;
    do {
        printf("i = %d\n", i);
        i++;
    } while (i < 5);
    return 0;
}

输出:

i = 0
i = 1
i = 2
i = 3
i = 4

4. 循环控制语句

C 语言提供了几种控制循环执行的语句,包括 breakcontinuegoto

4.1 break 语句

break 语句用于跳出当前循环(或 switch 语句)。当满足某个条件时,可以提前退出循环。

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break;  // 当 i 等于 5 时跳出循环
    }
    printf("%d\n", i);
}

输出:

0
1
2
3
4

4.2 continue 语句

continue 语句用于跳过当前循环的剩余部分,直接进入下一次循环。它通常用于跳过不符合条件的迭代。

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        continue;  // 跳过 i 等于 3 的循环迭代
    }
    printf("%d\n", i);
}

输出:

0
1
2
4

4.3 goto 语句

goto 语句可以无条件跳转到程序中的指定标签。这种语句通常不推荐使用,因为它可能使程序结构混乱,难以理解和维护。

#include <stdio.h>

int main() {
    int i = 0;
    start:  // 标签
    if (i < 5) {
        printf("%d\n", i);
        i++;
        goto start;  // 跳回到 start 标签处
    }
    return 0;
}

输出:

0
1
2
3
4

总结

  • for 循环:适用于已知循环次数的场景。
  • while 循环:适用于循环次数不确定,基于条件判断的场景。
  • do-while 循环:适用于至少执行一次的情况。
  • 循环控制语句:break 用于跳出循环,continue 用于跳过当前循环,goto 用于跳转到指定标签(不推荐)。

这些循环语句和控制结构是 C 语言编程中最常用的工具之一,用于实现重复操作和控制程序的执行流程。

发表回复 0

Your email address will not be published. Required fields are marked *