C语言---循环结构

文章目录

  • [1. while 循环](#1. while 循环)
  • [2. do...while 循环](#2. do...while 循环)
  • [3. for 循环](#3. for 循环)
  • [4. 循环控制语句](#4. 循环控制语句)
    • [4.1、break 语句](#4.1、break 语句)
    • [4.2、continue 语句](#4.2、continue 语句)
    • [4.3、goto 语句](#4.3、goto 语句)
  • [5. 无限循环](#5. 无限循环)
  • 如何选择循环
  • 总结

一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。循环结构是编程中用于重复执行某段代码的强大工具。C语言提供了三种主要的循环结构:for 循环、while 循环和 do...while 循环。

1. while 循环

while 循环会在条件为真时反复执行循环体内的代码。它先判断条件,再决定是否执行。

语法:

bash 复制代码
while (condition) {
    // 要重复执行的代码(循环体)
}

执行流程:

1、判断 condition 是否为真(非零)。

2、如果为真,执行循环体内的语句。

3、执行完毕后,再次回到第1步判断条件。

4、如果条件为假(零),则退出循环,执行后续代码。

示例:打印数字 1 到 5

bash 复制代码
#include <stdio.h>

int main() {
    int i = 1; // 初始化计数器
    while (i <= 5) { // 循环条件
        printf("%d\n", i);
        i++; // 更新计数器
    }
    return 0;
}

输出:

bash 复制代码
1
2
3
4
5

特点: 如果初始条件就不满足,循环体一次都不会执行。

2. do...while 循环

do...while 循环会先执行一次循环体,然后再判断条件。这意味着循环体至少会执行一次。

语法:

bash 复制代码
do {
    // 要重复执行的代码(循环体)
} while (condition);

执行流程:

1、先执行一次循环体内的语句。

2、然后判断 condition 是否为真。

3、如果为真,再次执行循环体。

4、如果为假,则退出循环。

示例:验证用户输入

bash 复制代码
#include <stdio.h>

int main() {
    int number;
    do {
        printf("请输入一个正整数: ");
        scanf("%d", &number);
    } while (number <= 0); // 如果输入不满足条件,则继续循环提示输入

    printf("你输入的是: %d\n", number);
    return 0;
}

特点: 无论条件如何,循环体至少执行一次。

3. for 循环

for 循环是最常用、最紧凑的循环,它将初始化、条件判断和计数器更新都写在一行。

语法:

bash 复制代码
for (initialization; condition; update) {
    // 要重复执行的代码(循环体)
}

1、initialization(初始化):循环开始前执行一次,通常用于初始化计数器。

2、condition(条件):每次循环前都会检查,为真则继续循环。

3、update(更新):每次循环体执行完毕后执行,通常用于更新计数器。

执行流程:

1、执行 initialization(仅一次)。

2、检查 condition。

3、如果条件为真,执行循环体。

4、执行 update。

5、回到第2步。

示例:打印数字 1 到 5

bash 复制代码
#include <stdio.h>

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

输出:

bash 复制代码
1
2
3
4
5

特点: 结构清晰,特别适合已知循环次数的场景。

4. 循环控制语句

控制语句 描述
break语句 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。
continue 语句 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
goto 语句 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

4.1、break 语句

作用:立即终止整个循环,跳出循环体,执行循环后面的代码。

示例:在找到所需元素后提前退出循环。

bash 复制代码
for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break; // 当 i 等于 5 时,终止循环
    }
    printf("%d\n", i);
}
// 输出: 1 2 3 4

4.2、continue 语句

作用:跳过本次循环中剩余的语句,直接进入下一次循环的条件判断(for 循环会先执行 update 部分)。

示例:跳过某些不需要处理的情况。

bash 复制代码
for (int i = 1; i <= 5; i++) {
    if (i == 3) {
        continue; // 跳过 i=3 这次的打印
    }
    printf("%d\n", i);
}
// 输出: 1 2 4 5

4.3、goto 语句

goto语句是无条件跳转,慎用。

语法:

bash 复制代码
goto label; // 跳转到标签处

// ... 其他代码 ...

label: // 标签定义
    // 要执行的代码

5. 无限循环

有时我们需要创建一个永不停止的循环(例如服务器的主循环),可以通过以下方式实现:

使用 while:

bash 复制代码
while (1) { // 条件永远为真
    // 循环体
}

使用 for:

bash 复制代码
for (;;) { // 三个表达式都省略
    // 循环体
}

在无限循环中,通常使用 break 语句在满足某个条件时退出。

如何选择循环

1、for 循环:最常用。当你事先知道循环需要执行多少次时,它是首选。例如,遍历数组、重复操作n次。

2、while 循环:当你不确定要循环多少次,而是根据某个条件是否满足来决定时使用。例如,读取文件直到末尾,等待用户输入有效值。

3、do...while 循环:当你希望循环体至少执行一次,然后再根据条件判断是否继续时使用。例如,显示菜单并等待用户选择。

总结

循环类型 特点 适用场景
while 先判断,后执行(可能执行0次) 条件驱动,循环次数未知
do...while 先执行1次,后判断(至少执行1次) 需要至少执行一次的情况
for 结构紧凑,集初始化、判断、更新于一体 计数驱动,循环次数已知
相关推荐
艾醒2 小时前
大模型面试题剖析:RAG中的文本分割策略
人工智能·算法
o0o_-_2 小时前
【go/gopls/mcp】官方gopls内置mcp server使用
开发语言·后端·golang
Dxy12393102162 小时前
python把文件从一个文件复制到另一个文件夹
开发语言·python
程序猿编码3 小时前
基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
linux·c语言·c++·内核模块·fifo·字符设备
酷飞飞3 小时前
Qt Designer与事件处理
开发语言·qt·命令模式
天雪浪子3 小时前
Python入门教程之赋值运算符
开发语言·python
Wadli3 小时前
C++语法 | static静态|单例模式
开发语言·c++·单例模式
他们都不看好你,偏偏你最不争气4 小时前
【iOS】AFNetworking
开发语言·macos·ios·objective-c
纪元A梦4 小时前
贪心算法应用:K-Means++初始化详解
算法·贪心算法·kmeans