C 语言分支与循环语句总结

C 语言分支与循环语句总结

程序的三大基本结构为顺序结构、分支结构、循环结构,分支与循环是实现程序逻辑控制的核心,以下是核心知识点总结。

一、分支语句

分支语句根据条件判断结果,选择执行对应的代码块,包含if系列和switch两种。

1. if 语句

基础单分支

运行

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

C 语言中,非 0 为真,0 为假。

if-else 二分支

运行

arduino 复制代码
#include <stdio.h>
int main() {
    int a = 10;
    if (a > 0) {
        printf("正数\n");
    } else {
        printf("非正数\n");
    }
    return 0;
}
else if 多分支

运行

arduino 复制代码
#include <stdio.h>
int main() {
    int score = 85;
    if (score >= 90)
        printf("A\n");
    else if (score >= 80)
        printf("B\n");
    else if (score >= 60)
        printf("C\n");
    else
        printf("D\n");
    return 0;
}

注意:else 永远与最近的未匹配 if 配对,建议统一加大括号避免悬空 else 问题。

2. switch 语句

适用于整型变量的多值等值判断。

运行

arduino 复制代码
#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;
        default: printf("输入错误\n"); break;
    }
    return 0;
}

注意:

  1. switch 后必须是整型表达式,case 后必须是整型常量
  2. break 用于跳出 switch,省略会发生 case 穿透,可利用穿透实现多值匹配同一逻辑
  3. default 用于处理所有 case 都不匹配的情况,非必须但建议添加

二、循环语句

循环语句用于重复执行一段代码,包含while、for、do-while三种。

1. while 循环

先判断条件,再执行循环体。

运行

arduino 复制代码
// 计算1-100的和
#include <stdio.h>
int main() {
    int i = 1, sum = 0;
    while (i <= 100) {
        sum += i;
        i++;
    }
    printf("和为%d\n", sum);
    return 0;
}

2. for 循环

将初始化、条件判断、变量更新集中书写,适合已知循环次数的场景。

运行

arduino 复制代码
// 打印1-10
#include <stdio.h>
int main() {
    for (int i = 1; i <= 10; i++) {
        printf("%d ", i);
    }
    return 0;
}

执行顺序:初始化 → 条件判断 → 执行循环体 → 更新变量 → 再次判断条件。

3. do-while 循环

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

运行

arduino 复制代码
#include <stdio.h>
int main() {
    int i = 1;
    do {
        printf("%d ", i);
        i++;
    } while (i <= 5);
    return 0;
}

4. break 与 continue

  • break:永久终止当前所在层的循环,直接跳出循环
  • continue:跳过本次循环后续代码,直接进入下一次条件判断

运行

ini 复制代码
// break示例:找到第一个能被7整除的数
for (int i = 1; i <= 20; i++) {
    if (i % 7 == 0) {
        printf("%d\n", i);
        break;
    }
}

// continue示例:打印1-10的奇数
for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0)
        continue;
    printf("%d ", i);
}

三、循环嵌套

循环内部可以再嵌套循环,外层循环执行一次,内层循环执行完整一轮。

运行

arduino 复制代码
// 九九乘法表
#include <stdio.h>
int main() {
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            printf("%d*%d=%-2d ", j, i, i*j);
        }
        printf("\n");
    }
    return 0;
}

四、综合练习:猜数字游戏

运行

arduino 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand((unsigned int)time(NULL));
    int target = rand() % 100 + 1;
    int guess, count = 0;
    
    printf("猜数字游戏(1-100)\n");
    while (1) {
        printf("请输入数字:");
        scanf("%d", &guess);
        count++;
        
        if (guess > target)
            printf("猜大了\n");
        else if (guess < target)
            printf("猜小了\n");
        else {
            printf("猜对了!答案是%d,共猜了%d次\n", target, count);
            break;
        }
    }
    return 0;
}

五、总结

  1. 分支选型:范围判断用if-else,多值等值判断用switch
  2. 循环选型:已知次数优先for,条件终止用while,需至少执行一次用do-while
  3. 注意事项:if 条件中==勿写成=;switch 勿忘 break;循环必须设置退出条件避免死循环
相关推荐
刃神太酷啦6 天前
前端入门第一课:HTML 基础语法 + 常用标签 + 实战全解
服务器·c语言·前端·javascript·css·c++·html
扶苏10026 天前
CSS 图标换色指南:用 brightness / invert / mask 把任意图片改成想要的颜色
css
我命由我123456 天前
CSS - CSS 媒体查询 orientation
前端·javascript·css·html·css3·html5·js
zhanghaha13146 天前
HTML系列教程:18_HTML / CSS 颜色零基础详解
css·html·tensorflow
Aaswk7 天前
从 HTML/CSS/JS 到 Vue + Axios 的一篇实战笔记
前端·css·vue.js·html
xieliyu.8 天前
前端基础:常见CSS选择器用法
前端·css·笔记·vscode
cll_8692418919 天前
WordPress Single Post 文章页美化:响应式表格、图片优化与自动悬浮 Table of Contents(CSS + JS)
前端·css
愛芳芳9 天前
基于 Electron + Vue3 的仿 PC 微信客户端项目实战
前端·javascript·css·elementui·typescript·electron·vue
feixing_fx10 天前
伪类与伪元素的魔法:纯 CSS 打造炫酷的按钮悬停特效
前端·css·css3
Peter-Code10 天前
微前端避坑指南:主应用与子应用的高度及滚动条协调
css·前端框架·微前端