C语言三种基本程序结构详解

C语言遵循结构化程序设计思想,所有程序逻辑都可以拆分为三种最基本、不可再分的控制结构:

顺序结构、选择结构、循环结构。

特点:单入口、单出口,结构清晰、无歧义、易调试,是所有复杂程序的基石。

一、顺序结构

  1. 核心定义

程序按照代码书写的先后顺序,自上而下依次执行,无跳转、无分支、无重复,执行完一条语句立刻执行下一条。

  1. 执行逻辑

入口 → 语句1 → 语句2 → 语句3 → ... → 出口

  1. 语法形式

就是普通的变量定义、赋值、输入输出、函数调用,默认都是顺序执行。

c

#include <stdio.h>

int main()

{

int a = 10; // 顺序第1步

int b = 20; // 顺序第2步

int c = a + b; // 顺序第3步

printf("%d",c); // 顺序第4步

return 0;

}

  1. 特点

  2. 最简单、最基础的结构;

  3. 无逻辑判断,无跳转;

  4. 任何程序默认主干都是顺序结构;

  5. 每句只执行一次。

  6. 应用场景

变量初始化、数据输入、简单计算、结果输出等线性流程。

二、选择结构(分支结构)

  1. 核心定义

根据条件表达式的真假,选择性执行某一段代码,跳过其他代码,实现逻辑分支判断。

  1. 分类(C语言全部选择形式)

(1)if 单分支

条件为真执行代码块,为假直接跳过。

c

if(条件表达式)

{

// 条件成立执行

}

(2)if...else 双分支

二选一,条件真走A,条件假走B,必走其一。

c

if(条件)

{

// 真分支

}

else

{

// 假分支

}

(3)if...else if...else 多分支

多条件依次匹配,从上到下找到第一个成立的条件就执行,其余全部跳过。

c

if(条件1){}

else if(条件2){}

else if(条件3){}

else{} // 都不满足时执行

(4)switch 多分支

适合固定整型/字符常量匹配的多分支,比多if更清晰、效率更高。

c

switch(表达式)

{

case 常量1: 语句; break;

case 常量2: 语句; break;

default: 默认语句;

}

关键点:break 防止穿透,表达式只能是整型、字符型、枚举。

  1. 执行逻辑

判断条件 → 匹配分支 → 执行对应代码块 → 跳出分支结构,继续往下顺序执行。

  1. 特点

  2. 有逻辑判断,程序不再死板顺序执行;

  3. 单入口、单出口;

  4. 可以嵌套(if里套if、switch里套if);

  5. 分支互斥,只会执行其中一条分支。

  6. 应用场景

成绩评级、权限判断、菜单选择、奇偶判断、大小比较等。

三、循环结构

  1. 核心定义

满足条件时重复执行某一段代码,直到条件不成立,退出循环,解决重复操作问题。

  1. C语言三种循环语法

(1)while 循环(先判断,后执行)

先判条件,条件为真才执行循环体;可能一次都不执行。

c

while(条件表达式)

{

// 循环体

}

(2)do...while 循环(先执行,后判断)

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

c

do

{

// 循环体

}while(条件); // 末尾有分号

(3)for 循环(结构化最强,常用)

把初始化、条件判断、自增/自减写在一行,结构紧凑,适合已知循环次数。

c

for(初始化表达式; 条件表达式; 更新表达式)

{

// 循环体

}

  1. 辅助控制语句
  • break :直接跳出当前循环/switch,终止循环;

  • continue :跳过本次循环剩余语句,直接进入下一次条件判断;

  • 禁止滥用 goto (破坏结构化三种基本结构)。

  1. 执行逻辑

  2. 循环条件判断;

  3. 条件为真 → 执行循环体;

  4. 回到条件再次判断,重复执行;

  5. 条件为假 → 退出循环,往下顺序执行。

  6. 特点

  7. 实现代码复用、重复运算;

  8. 支持循环嵌套(for套for、while套if等);

  9. 三种循环可互相替换,场景略有区别;

  10. 必须设置循环终止条件,否则造成死循环。

  11. 应用场景

累加累乘、遍历数组、批量输入输出、延时等待、游戏逻辑循环等。

四、三种结构核心共性与整体关系

  1. 通用性:任何复杂C语言程序(函数、数组、指针、项目)都仅由这三种结构组合、嵌套而成,不需要其他结构;

  2. 结构化规范:都遵循单入口、单出口,逻辑规整,可读性强、便于维护;

  3. 组合关系- 顺序里包含选择、循环;

  • 选择里可嵌套顺序、循环、选择;

  • 循环里可嵌套顺序、选择、循环;

  1. 执行层级:顺序是主干,选择做分支分流,循环做重复执行。

五、- 顺序:从上到下,逐条执行;

  • 选择:按条件选路,分支执行;

  • 循环:满足条件重复执行,直到不满足退出。

相关推荐
上弦月-编程1 小时前
【C语言】函数栈帧的创建与销毁(底层原理)
c语言·开发语言
eqwaak02 小时前
PyTorch张量操作全攻略:从入门到精通
开发语言·人工智能·pytorch·python
辞旧 lekkk2 小时前
【Qt】初识(上)
开发语言·数据库·qt·学习·萌新
Hhy_11072 小时前
【从零开始学习数据结构 ④】:栈 ——后进先出的艺术
c语言·数据结构·学习·visual studio
格林威2 小时前
线阵工业相机:如何计算线阵相机的行频(Line Rate)?公式+实例
开发语言·人工智能·数码相机·算法·计算机视觉·工业相机·线阵相机
Chasing Aurora2 小时前
python 安装依赖和导入模块 详解
开发语言·python·虚拟环境·import·pyenv·requirements
近津薪荼2 小时前
C++ vector容器底层深度剖析与模拟实现
开发语言·c++
木易 士心2 小时前
为什么 Promise 比 setTimeout 先执行?——JavaScript 事件循环与异步顺序完全指南
开发语言·javascript·ecmascript
海清河晏1112 小时前
数据结构 | 链式队列
开发语言·数据结构·链表