当前位置: 首页 > news >正文

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混淆)。

结语

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

http://www.cnnetsun.cn/news/3724097.html

相关文章:

  • STM32 PWM频率与占空比计算原理:从定时器时钟到参数配置实战
  • 嵌入式开发外部中断:从原理到实战的NVIC与EXTI配置指南
  • Unity翻书插件Book-Page Curl Pro:从原理到实战的完全指南
  • 企业信息安全分级分类实战:4 级数据 5 类受众,一张表搞定对外输出管控
  • STM32串口通信实战:双机UART连接、协议设计与DMA优化
  • 单片机、嵌入式与PLC:核心区别、应用场景与学习路径全解析
  • 固定资产管理系统技术演进解析:台账架构、标签打印、盘点模式、维保体系与信创迭代史
  • ReactNative与OpenHarmony跨平台开发实战
  • AI芯片内功心法大全:为什么没有一款芯片能通吃所有AI任务?
  • JAVA毕业设计-基于 SpringBoot+Vue 的智能仓储进销存管理系统设计与实现 基于前后端分离的智慧仓储物资监控管理平台(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 华为OD C++面试指南:核心考点与实战策略解析
  • 数字芯片CDC设计实战:从亚稳态原理到SystemVerilog验证
  • 喜马拉雅音频下载器:3步轻松实现VIP专辑本地永久保存
  • 智能抄表在能源管理上的用处
  • 元宇宙课程PPT设计:Python技术栈与教学实践
  • 物联网设备安全芯片SE050与dsPIC30F4011集成方案
  • 如何安全解锁Switch全部功能:Atmosphere大气层系统完整指南
  • 计算机毕业设计之“我爱我家”地方特色农产品商城的设计与实现
  • STM32移植OpenHarmony LiteOS-M内核实战:从环境搭建到驱动开发
  • VS Code Git 工作树:多分支并行开发体验
  • C++代码耗时测量:从原理到实践,四种方法精准性能分析
  • 2026服务好加密软件公司 7项核心维度深度横评
  • 企业培训视频为什么需要加密保护?
  • yuzu模拟器终极实战指南:从零构建高性能Switch游戏体验
  • Playwright无痕模式与无头模式深度解析:从概念到实战配置
  • LaTeX子公式编号与对齐排版实战指南
  • 抖音下载器完全指南:三步保存无水印高清视频的终极方案
  • 企业级AI智能体开发实战:从LangChain到LangGraph完整指南
  • 代码安全智能体|灵脉CodeAI让复杂漏洞有迹可循
  • Python构建基金数据分析系统:爬虫、处理与可视化实战