news 2026/7/29 6:52:17

C 语言核心控制逻辑 —— 分支语句与循环语句

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C 语言核心控制逻辑 —— 分支语句与循环语句

前言

C语言程序默认按照从上到下的顺序执行,但是单纯顺序执行无法实现复杂逻辑。分支语句实现选择性执行,循环语句实现重复执行,二者是构建程序逻辑的基础。本文结合代码实例,梳理if、switch、for、while、do while语句用法与常见坑点。

一、分支语句(选择结构)

分支语句根据条件真假,选择执行不同代码块。

1. if语句

基础语法:

if(条件){语句;}elseif(条件){语句;}else{语句;}
  • 条件为非0,判定为真;条件为0,判定为假。
  • 若大括号省略,if仅控制紧随其后第一条语句,建议永远带上大括号避免逻辑错误。
  • 悬空else规则:else匹配离它最近、未配对的if。

示例:三角形类型判断

if((a+b>c)&&(a+c>b)&&(b+c>a)){if(a==b&&b==c)printf("Equilateral triangle!\n");elseif(a==b||a==c||b==c)printf("Isosceles triangle!\n");elseprintf("Ordinary triangle!\n");}else{printf("Not a triangle!\n");}

2. switch语句

适合多分支常量判断场景,替代冗长的else if。

switch(整型表达式){case常量1:语句;break;case常量2:语句;break;default:语句;break;}

⚠️重点:

  1. switch括号内只能是整型(char/short/int),不能使用浮点、字符串;
  2. case后必须是常量,不能写变量;
  3. break用来跳出switch,缺少break会发生穿透现象
  4. default处理所有case都不匹配的情况,位置不限。

二、循环语句(重复结构)

循环可以重复执行一段代码,由循环条件控制何时退出。

1. while循环

while(条件){循环体;}

执行逻辑:先判断条件,条件成立才执行循环体;有可能一次都不执行
典型用途:持续读取输入while(scanf("%d",&x)!=EOF)

2. for循环(使用频率最高)

for(初始化;判断条件;更新){循环体;}

执行顺序:初始化 → 判断条件 → 循环体 → 更新,循环往复。
适合已知循环次数场景,例如输出100~200素数、分数累加求和。

示例:交替分数求和作业代码

for(i=1;i<=100;i++){sum=sum+flag*1.0/i;flag=-flag;}

3. do while循环

do{循环体;}while(条件);

先执行循环体,再判断条件;循环体至少执行1次。适合需要先运行一次再判断的场景。

三、循环控制关键字

  1. break:直接终止当前循环,跳出循环;
  2. continue:结束本次循环,立刻进入下一轮条件判断,不会跳出循环。

四、嵌套结构

分支内部可以嵌套循环,循环内部也可以嵌套分支,多层循环也允许互相嵌套。
素数判断就是典型嵌套:外层遍历数字,内层循环判断能否整除。

五、常见易错点总结

  1. 整数除法陷阱:1/2结果为0,浮点运算必须写1.0/2
  2. 死循环:循环条件永远为真,忘记更新循环变量;
  3. if不带大括号造成作用域错误;
  4. switch忘记break引发case穿透;
  5. 循环边界写错(例如i<100i<=100混淆)。

结语

分支与循环是所有编程语言通用基础逻辑。熟练掌握三种循环、两类分支,才能实现筛选、迭代、查找等功能。后续复杂算法(最大公约数、素数筛选等)全部建立在控制语句之上。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/29 6:51:40

STM32 PWM频率与占空比计算原理:从定时器时钟到参数配置实战

1. 项目概述&#xff1a;从“知其然”到“知其所以然”搞嵌入式开发&#xff0c;尤其是用STM32做电机控制、LED调光、舵机驱动这些项目&#xff0c;PWM&#xff08;脉冲宽度调制&#xff09;绝对是个绕不开的核心功能。我见过不少新手朋友&#xff0c;在CubeMX里配置PWM时&…

作者头像 李华
网站建设 2026/7/29 6:44:56

嵌入式开发外部中断:从原理到实战的NVIC与EXTI配置指南

1. 项目概述&#xff1a;为什么外部中断是嵌入式开发的“黄金技能”&#xff1f;搞嵌入式开发&#xff0c;尤其是单片机编程&#xff0c;如果你只会用轮询&#xff08;Polling&#xff09;的方式去检测按键、等待传感器信号&#xff0c;那就像是在用算盘处理大数据——效率低、…

作者头像 李华
网站建设 2026/7/29 6:44:48

Unity翻书插件Book-Page Curl Pro:从原理到实战的完全指南

1. 项目概述与核心价值在数字阅读、电子杂志、交互式手册或者游戏内的道具&#xff08;如魔法书、技能图鉴&#xff09;等场景中&#xff0c;一个流畅、逼真的翻页效果能极大提升用户体验和产品质感。自己从零实现一套物理正确的翻页逻辑&#xff0c;涉及网格变形、UV动画、碰撞…

作者头像 李华
网站建设 2026/7/29 6:44:44

企业信息安全分级分类实战:4 级数据 5 类受众,一张表搞定对外输出管控

客户要架构图、审计要日志、法务要合同、投资人要数据——你能给什么、不能给什么、给到什么粒度?本文用一套分级框架 + 一张对外输出决策表,让你 30 秒做出判断。 前言 运维/安全团队经常面对这些场景: 客户合作方要你提供系统架构图、API 文档 外部审计机构要安全扫描报告…

作者头像 李华
网站建设 2026/7/29 6:44:41

STM32串口通信实战:双机UART连接、协议设计与DMA优化

1. 项目概述&#xff1a;为什么需要连接两块STM32板子&#xff1f;在嵌入式开发的实际项目中&#xff0c;我们常常会遇到一个核心需求&#xff1a;让两块或多块单片机协同工作。比如&#xff0c;一块板子负责采集传感器数据&#xff08;温度、湿度、姿态&#xff09;&#xff0…

作者头像 李华
网站建设 2026/7/29 6:44:10

单片机、嵌入式与PLC:核心区别、应用场景与学习路径全解析

1. 项目概述&#xff1a;从“三兄弟”的江湖地位说起在工业自动化和智能硬件的世界里&#xff0c;单片机、嵌入式和PLC这“三兄弟”的名字如雷贯耳&#xff0c;但很多刚入行的朋友&#xff0c;甚至一些工作了几年的工程师&#xff0c;对它们之间的区别和联系依然感到模糊。我经…

作者头像 李华