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

C语言是一门面向过程的计算机编程语言,与C++

顺序结构

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。

选择结构

顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。代表就是if

循环结构

循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。

特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。

三个循环的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。

顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。

具体内容:

for循环

for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:

for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)

表达式

表达式1为初值表达式,用于在循环开始前为循环变量赋初值。

表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。

表达式3为循环控制变量修改表达式,它使for循环趋向结束。

循环体语句是在循环控制条件成立的情况下被反复执行的语句。

但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。

先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。

for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。

do

do循环结构,do 1 while⑵;的执行顺序是1->2->1...循环,2为循环条件。

while

while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件

以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。

http://www.jsqmd.com/news/940952/

相关文章:

  • 麒麟V10系统4K屏字体太小?别急,用这三条命令搞定(实测有效)
  • 心性编码:依托本源心性构建程序底层编码新理论
  • 保姆级排错实录:斐讯N1刷Armbian装CasaOS踩过的那些坑,以及如何用Cpolar稳定穿透(附解决方案)
  • PTC全家桶的license管理,我劝你别一个个单搞了
  • 半岁婴儿大运动循序渐进培养,顺应成长节奏合理练习翻身与独坐
  • 后端使用 AI 开发前端速成:第三期:Vue 3 深入实战 —— 列表页开发
  • 避开这3个坑,你的Qwen-14B微调效果才能翻倍(数据准备与参数设置避雷指南)
  • 摩尔定律的终局与续命:从晶体管微缩到芯粒与3D集成的技术演进
  • 【Java 入门 Day4】 循环结构|三种循环 + break/continue,再也不怕绕晕循环套娃
  • 为什么你的Sora 2毕业视频被退回3次?资深AIGC伦理审查员透露:87%因忽略这个元数据签名字段
  • Veo 2为何突然“卡顿失真”?:深度拆解时间一致性建模缺陷、运动矢量对齐误差及实时推理延迟补偿方案
  • Carnot群中Lipschitz曲线的C¹_H不可整流性构造与证明
  • 告别多视图数据‘打架’:用Multi-VAE手把手分离公共与独特视觉特征(附PyTorch代码)
  • 超越基础指令:用Midjourney的sref和cref打造你的专属IP角色与视觉品牌
  • 软件许可不够用怎么破
  • Collabio Game:游戏化社交行为数据挖掘实验平台的设计与实践
  • 3分钟实现音乐自由:ncmdump终极解密指南让网易云音乐NCM文件随处播放
  • 抱歉,我可能误解了您之前的请求。您希望我根据特定内容生成一个标题,但已提供了完整的文章内容。以下是基于文章核心内容生成的标题(≤30字): FPGA实时Sobel加速器:HLS+AXI全流程设计
  • 保姆级图解:拆解一块LCD/OLED屏幕,手把手认识TFT这个‘像素开关’(附A-Si/Oxide结构差异)
  • AI智能体与软考架构设计深层关联(5)
  • 实战指南:基于快马平台生成ht32温湿度监控系统,从硬件对接到逻辑控制
  • Sora 2地方宣传效果断崖式下滑预警(2024Q2监测数据显示:61.3%内容因“地域符号稀释”遭算法降权)
  • 如何在5分钟内为Unity游戏安装BepInEx插件框架:完整入门指南
  • 不锈钢热转印花膜厂家实力排行:珠三角长三角头部梯队盘点 - 奔跑123
  • 新手入门:跟快马学编程,轻松解决小皮面板80端口冲突问题
  • 别再死记硬背了!用UE5的3C框架(Controller/Camera/Character)快速搭建一个可移动的第三人称角色
  • 从零到一:如何用BepInEx为你的游戏注入无限可能
  • 2026年6月专业的低温高湿解冻库生产厂家推荐,冻肉解冻设备/冻肉解冻库/解冻库,低温高湿解冻库源头厂家口碑推荐 - 品牌推荐师
  • 具身远程呈现系统:从动作捕捉到力触觉反馈的工程实践
  • Sora 2个人品牌视频正在失效?2024Q2平台算法突变预警:3类高危内容已触发降权,立即自查!