🔍 登录 注册

C语言-控制结构

大 大苹果 2024-07-29 algorithm 👁 15 ⏱ 6min

在C语言中,控制结构用于控制程序的执行流程,包括条件语句和循环语句。通过控制结构,程序可以根据特定条件执行不同的代码块或重复执行某些代码。

控制结构概述

C语言的控制结构主要分为两类:

  1. 条件语句:用于根据条件的真假来决定执行哪一段代码。

    • if语句
    • switch语句
  2. 循环语句:用于重复执行一段代码。

    • for循环
    • while循环
    • do-while循环

1. 条件语句

if语句

if语句用于根据条件的真假来决定是否执行某段代码。

基本语法

if (condition) {
    // 当条件为真时执行的代码
}

示例

#include <stdio.h>

int main() {
    int num = 10;

    if (num > 5) {
        printf("数字大于5\n");
    }

    return 0;
}

if-else语句

if-else语句用于在条件为假时执行另一段代码。

if (condition) {
    // 当条件为真时执行的代码
} else {
    // 当条件为假时执行的代码
}

示例

#include <stdio.h>

int main() {
    int num = 3;

    if (num > 5) {
        printf("数字大于5\n");
    } else {
        printf("数字小于或等于5\n");
    }

    return 0;
}

if-else if-else语句

if-else if-else语句用于处理多个条件。

if (condition1) {
    // 当条件1为真时执行的代码
} else if (condition2) {
    // 当条件2为真时执行的代码
} else {
    // 当所有条件为假时执行的代码
}

示例

#include <stdio.h>

int main() {
    int num = 7;

    if (num > 10) {
        printf("数字大于10\n");
    } else if (num > 5) {
        printf("数字大于5且小于或等于10\n");
    } else {
        printf("数字小于或等于5\n");
    }

    return 0;
}

switch语句

switch语句用于根据变量的值执行不同的代码段。适用于处理多分支选择的场景。

基本语法

switch (expression) {
    case constant1:
        // 当expression等于constant1时执行的代码
        break;
    case constant2:
        // 当expression等于constant2时执行的代码
        break;
    ...
    default:
        // 当所有case都不匹配时执行的代码
}

示例

#include <stdio.h>

int main() {
    int day = 3;

    switch (day) {
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;
        case 4:
            printf("星期四\n");
            break;
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期日\n");
            break;
        default:
            printf("无效的日期\n");
    }

    return 0;
}
  • break语句用于跳出switch语句,防止执行后续的case。
  • default语句是可选的,执行当所有case都不匹配时的代码。

2. 循环语句

for循环

for循环用于指定执行次数的循环,适合于需要进行计数的场景。

基本语法

for (initialization; condition; increment) {
    // 循环体
}
  • initialization:循环变量的初始化。
  • condition:循环继续执行的条件。
  • increment:循环变量的更新。

示例

#include <stdio.h>

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

    return 0;
}
  • 输出:
    for循环: 0
    for循环: 1
    for循环: 2
    for循环: 3
    for循环: 4
    

while循环

while循环用于在条件为真时重复执行的代码块,适合于循环次数不确定的场景。

基本语法

while (condition) {
    // 循环体
}

示例

#include <stdio.h>

int main() {
    int i = 0;

    while (i < 5) {
        printf("while循环: %d\n", i);
        i++;
    }

    return 0;
}
  • 输出:
    while循环: 0
    while循环: 1
    while循环: 2
    while循环: 3
    while循环: 4
    

do-while循环

do-while循环类似于while循环,但至少执行一次循环体,因为条件判断在循环体之后。

基本语法

do {
    // 循环体
} while (condition);

示例

#include <stdio.h>

int main() {
    int i = 0;

    do {
        printf("do-while循环: %d\n", i);
        i++;
    } while (i < 5);

    return 0;
}
  • 输出:
    do-while循环: 0
    do-while循环: 1
    do-while循环: 2
    do-while循环: 3
    do-while循环: 4
    

break语句

break语句用于立即退出循环或switch语句,常用于提前结束循环。

示例

#include <stdio.h>

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

    return 0;
}
  • 输出:
    i: 0
    i: 1
    i: 2
    i: 3
    i: 4
    

continue语句

continue语句用于跳过本次循环的剩余代码,直接进入下一次循环。

示例

#include <stdio.h>

int main() {
    for (int i = 0; i < 10; i++) {
        if (i % 2 == 0) {
            continue; // 跳过偶数
        }
        printf("奇数: %d\n", i);
    }

    return 0;
}
  • 输出:
    奇数: 1
    奇数: 3
    奇数: 5
    奇数: 7
    奇数: 9
    

小结

C语言的控制结构使得程序可以根据条件执行不同的代码块或重复执行代码。通过条件语句和循环语句,程序的执行流程变得灵活多样。这些控制结构是C语言编程的基础,通过掌握它们,可以编写出更复杂和功能丰富的程序。

如果有任何问题或者需要更多详细解释,请随时告诉我!

读完了?给作者一点支持

本文采用 CC BY 4.0 协议转载 · © 大苹果

评论(0)

登录 后参与评论。

  • 还没有评论,来抢沙发。

🔗 相关文章

动态规划从入门到进阶:状态设计与空间优化的完整方法论

从暴力递归到记忆化与递推,覆盖背包、区间、状态压缩等模型,给出动态规划状态设计与空间优化的完整方法论。

21 天前👍 0

Go 排序算法实战:从冒泡到 TimSort 的复杂度与工程取舍

用 Go 实现九种经典排序,剖析复杂度、稳定性与适用场景,并拆解标准库 sort 背后的 introsort 工程取舍。

21 天前👍 0

RabbitMQ 标准队列

RabbitMQ 标准队列(Classic Queue)是消息传递系统中最基本的队列类型,消息按先进先出(FIFO)的顺序存储和传递。以下是标准队列的常见应用场景和详细说明: ### 1. **任务队列(Task Queue)** - **场景描述**:在后台处理任务时,如图像处理、视频转码、数据分析等,需要将任务分配给多个工作节点进行处理,避免阻塞主应用。 - **应用说明**:在任务队列中,每个任务都会被推送到 RabbitMQ 的标准队列中,多个消费者从队列中获取任务并处理,任务处理完毕后删除队列中的消息。 - **举例**: - **应用**:电商网站后台处理订单数据,如生成发货单、发送确认邮件等。这些任务可以异步处理,以提高系统的响应速度。 - **代码示例(Node.js)**: ```javascript // 生产者:将任务添加到队列 const amqp = require('amqplib/callback_api'); amqp.connect('amqp://localhost', func

2024/8/11👍 0