嵌入式C语言阶段复习——循环语句和分支语句

一、循环语句

(1)for循环

语法结构:

c 复制代码
for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体
}

示例:

c 复制代码
for (int i = 0; i < 5; i++) {
    printf("%d\n", i);
}

特点:

  • 适用于已知循环次数的场景。
  • 初始化、条件判断和更新可在同一行内完成。
(2)while循环

语法结构:

c 复制代码
while (条件表达式) {
    // 循环体
}

示例:

c 复制代码
int i = 0;
while (i < 5) {
    printf("%d\n", i);
    i++;
}

特点:

  • 先判断条件,再执行循环体。
  • 适用于不确定循环次数但需满足条件时。
(3)do-while循环

语法结构:

c 复制代码
do {
    // 循环体
} while (条件表达式);

示例:

c 复制代码
int i = 0;
do {
    printf("%d\n", i);
    i++;
} while (i < 5);

特点:

  • 先执行循环体,再判断条件。
  • 至少执行一次循环体。

二、分支语句

(1)if语句

基础语法:

c 复制代码
if (条件表达式) {
    // 条件为真时执行
}

示例:

c 复制代码
int a = 10;
if (a > 5) {
    printf("a大于5\n");
}
(2)if-else语句

语法结构

c 复制代码
if (条件表达式) {
    // 条件为真时执行
} else {
    // 条件为假时执行
}

示例:

c 复制代码
int a = 3;
if (a > 5) {
    printf("a大于5\n");
} else {
    printf("a不大于5\n");
}
(3)else-if链

语法结构:

c 复制代码
if (条件1) {
    // 条件1为真时执行
} else if (条件2) {
    // 条件2为真时执行
} else {
    // 其他情况执行
}

示例:

c 复制代码
int score = 85;
if (score >= 90) {
    printf("优秀\n");
} else if (score >= 60) {
    printf("及格\n");
} else {
    printf("不及格\n");
}
(4)switch语句

语法结构:

c 复制代码
switch (表达式) {
    case 常量1:
        // 执行语句
        break;
    case 常量2:
        // 执行语句
        break;
    default:
        // 默认执行语句
}

示例:

c 复制代码
char grade = 'B';
switch (grade) {
    case 'A':
        printf("优秀\n");
        break;
    case 'B':
        printf("良好\n");
        break;
    default:
        printf("其他\n");
}

特点:

  • 适用于多分支选择。
  • 必须用break终止每个case,否则会继续执行后续case

三、注意事项

循环语句中需注意循环条件的更新,避免死循环。

分支语句中ifswitch的选择取决于分支复杂度switch适合离散值,if适合范围判断。

switchcase值必须是整型或字符型常量

相关推荐
阿猿收手吧!6 分钟前
【C++】异步编程:std::async终极指南
开发语言·c++
小程故事多_8020 分钟前
Agent Infra核心技术解析:Sandbox sandbox技术原理、选型逻辑与主流方案全景
java·开发语言·人工智能·aigc
沐知全栈开发21 分钟前
SQL 日期处理指南
开发语言
黎雁·泠崖24 分钟前
【魔法森林冒险】3/14 Allen类(一):主角核心属性与初始化
java·开发语言
黎雁·泠崖28 分钟前
【魔法森林冒险】1/14 项目总览:用Java打造你的第一个回合制冒险游戏
java·开发语言
独好紫罗兰33 分钟前
对python的再认识-基于数据结构进行-a006-元组-拓展
开发语言·数据结构·python
C++ 老炮儿的技术栈37 分钟前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法
yuuki2332331 小时前
【C++】继承
开发语言·c++·windows
222you1 小时前
Redis的主从复制和哨兵机制
java·开发语言
牛奔1 小时前
如何理解 Go 的调度模型,以及 G / M / P 各自的职责
开发语言·后端·golang