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. 执行层级:顺序是主干,选择做分支分流,循环做重复执行。

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

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

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

相关推荐
优雅格子衫6 分钟前
uniapp 拍照相册选取后超级好用的裁剪组件,增加水印完全自定义
开发语言·前端·javascript·uni-app·vue
Vallelonga19 分钟前
Rust 中 unsafe 关键字的语义
开发语言·rust
AI砖家23 分钟前
前端 JavaScript 异步处理全方案详解:从回调到 Observable
开发语言·前端·javascript
社交怪人25 分钟前
【A×B】信息学奥赛一本通C语言解法(题号1036)
c语言
思麟呀27 分钟前
C++工业级日志项目(七)日志器核心
linux·开发语言·c++·windows
2401_8734794027 分钟前
如何用IP离线库批量清洗订单IP,自动标注省市区?
开发语言·网络·python
lcj251132 分钟前
vector的基本使用 + 手搓成员变量 size capacity begin end operator[] reserve扩容 拷贝构造 赋值析构
开发语言·c++·笔记·面试
GHL28427109044 分钟前
Qt Creator 19.0.0 (Community)下载
开发语言·qt
之歆1 小时前
Day21_电商详情页核心技术实战:从LESS预处理到复杂交互实现
开发语言·前端·javascript·css·交互·less