0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言基础篇--选择/顺序/循环结构

正点原子 2022-04-02 11:00 次阅读

以下文章来源于:公_众_号开源电子

前言

C语言中,按照程序的执行流程不同,分为顺序结构、分支结构和循环结构。多么复杂的逻辑事物都是由这三个结构组成。

顺序结构

顺序结构是最简单的一种流程结构,它采用自上而下的方式逐条执行各语句。简易顺序结构如下所示:

pYYBAGJHtWuAAAbSAAA5cJxcb7Q569.png

分支结构

分支结构,又称选择结构,可以控制程序的部分流程是否被执行,或者是从多条执行路径种选择一条来执行。在C语言中有两种选择语句:①if语句,用来实现两个分支的选择结构②switch语句,用来实现多分支的选择结构。

选择结构if,具体用法如表格所示:

if (表达式) {语句}

if (表达式) {语句1}

else {语句2}

if (表达式) { if (表达式) {语句} }

else {语句}

if (表达式) {语句}

else if (表达式) {语句}

else {语句}

选择结构switch,具体使用格式如下:

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

在程序运行时,首先会计算整型表达式的值,然后用该值与后面的所有case标签进行一一匹配(即查看该值是否与case标签的表达式的值相同)。如果有匹配的case标签,则从该case标签起,执行后续的语句,直至遇到break语句为止。如果没有匹配到case标签,则从default标签起,执行后续的语句,直到遇到break为止。

这里特别需要注意:①case后带的表达式一定要是常数,并且是整型。②在语句后面通常是有break关键字。③ 最后一般有default,即前面case没有一个符合的情况,就会调到default里执行。虽然说语法上可以允许没有default,但是为了完整,建议是需要的。

那么if和switch这两种选择结构有啥区别呢?

if语句比较适用在对比条件比较复杂的且分支比较少的情况下使用;switch语句则是适用在对比条件比较简单且分支比较多的情况下使用;正常情况下,先考虑能不能用switch语句,假如不满足使用需求,则使用if语句。当然,不管黑猫白猫捉到老鼠的就是好猫,能实现效果即可。

循环结构

循环结构就是重复执行一个语句块,直到不满足某个条件为止。在C语言中有三种循环语句:①while语句②do while语句③for语句

while语句也称while循环,具体使用格式如下:

while(表达式)
  语句

while语句根据小括号内表达式的值来决定是否执行语句,当表达式的值为假时,循环结束,语句不会被执行;假如表达式的值为真,语句被执行,然后会再次判断表达式的值,如此反复,直至表达式的值为假。

do while语句也称do while循环,具体使用格式如下:

do 
语句
while(表达式)

从结构上,由“do”关键字开头,紧接着是语句也就是循环体了,最后是while关键字和表达式。do while语句是先执行循环体,然后再检查条件是否成立,若成立,再执行循环体,这就是跟while语句不同。

for语句,相对前面两个循环语句复杂一点,具体使用格式如下:

for(表达式1;表达式2;表达式3)
语句

相比前面的while和do while语句,for语句的表达式有三个,表达式之间用‘;’隔开,这三个表达式的作用和执行时期是不一样的,具体情况如下表:

表达式作用执行时期
表达式1通常在这个地方对循环变量进行初始化或赋值开始时执行1次
表达式2表达式的值为真时执行循环体,为假时结束for语句循环体执行前
表达式3通常在这个地方对循环变量进行修改,通常是加减操作循环体执行后

具体执行流程:在for语句被执行前,首先会执行表达式1,然后再检查表达式2的值:假如为假,不执行循环体,结束for语句;假如为真,则执行循环体语句。执行完循环语句后,再去执行表达式3,并再次去检查表达式2的值,如此反复,直到表达式2的值为假,结束for语句。

这三个循环语句,哪种情况用哪个好呢?

如果程序中固定了循环的次数,那么就可以采用for语句。如果程序中必须执行一次程序,那么就可以使用do while语句。除了以上两种情况,就可以使用while语句。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43978

    浏览量

    620871
  • 嵌入式
    +关注

    关注

    4983

    文章

    18286

    浏览量

    288516
  • C语言
    +关注

    关注

    180

    文章

    7533

    浏览量

    128790
  • 电子技术
    +关注

    关注

    18

    文章

    814

    浏览量

    54865
收藏 人收藏

    评论

    相关推荐

    c语言顺序结构的基本流程

    C语言是一种通用的编程语言,注重结构化编程和顺序结构顺序
    的头像 发表于 11-22 10:20 487次阅读

    c语言在while中嵌套if循环

    C语言是一种广泛使用的面向过程编程语言,它提供了许多控制结构来帮助程序员实现复杂的逻辑和流程控制。其中,while循环和if语句是非常常见和重要的控制
    的头像 发表于 11-22 10:09 1584次阅读

    C语言for循环的用法和注意事项

    C 语言是一种广泛使用的编程语言,它具有简洁、高效、灵活的特点。C 语言中有很多控制流程的语句,其中 for 循环是一种常见的循环
    的头像 发表于 11-20 18:27 1032次阅读
    C<b class='flag-5'>语言</b>for<b class='flag-5'>循环</b>的用法和注意事项

    C语言循环结构的使用方法

    详细介绍了C语言while循环结构、do-while循环结构、for循环
    发表于 11-02 11:26 452次阅读
    C<b class='flag-5'>语言</b><b class='flag-5'>循环</b><b class='flag-5'>结构</b>的使用方法

    求分享c语言的51单片机流水灯循环流水程序

    [i][i][i][i] c语言 的51单片机流水灯循环流水程序
    发表于 10-18 06:57

    基于VHDL语言循环码编译码系统的设计

    电子发烧友网站提供《基于VHDL语言循环码编译码系统的设计.pdf》资料免费下载
    发表于 10-13 14:31 1次下载
    基于VHDL<b class='flag-5'>语言</b>的<b class='flag-5'>循环</b>码编译码系统的设计

    顺序功能图中常见序列

    顺序功能图中除了前面使用过的单序列和循环序列外,还有并行序列、选择序列、跳转序列和混合序列,本期主要介绍并行序列和选择序列。
    的头像 发表于 10-01 10:53 1144次阅读
    <b class='flag-5'>顺序</b>功能图中常见序列

    嵌入式C语言中的结构是什么?

    在介绍结构之后,将看一下这个强大数据对象的一些重要应用。然后将检查C语言语法以声明结构。最后将简要介绍数据对齐要求。可以通过简单地重新排列其成员的顺序来减小
    发表于 09-20 11:27 259次阅读
    嵌入式C<b class='flag-5'>语言</b>中的<b class='flag-5'>结构</b>是什么?

    python改变循环正常的执行顺序

    循环控制循环控制语句可以改变循环正常的执行顺序 循环控制语句 break语句:跳出本次循环(嵌套
    的头像 发表于 09-12 16:59 564次阅读
    python改变<b class='flag-5'>循环</b>正常的执行<b class='flag-5'>顺序</b>

    C语言中while和do-while循环的用法

    循环是一种重要的控制结构,可以使程序重复执行一段代码,直到满足特定条件为止。在C语言中,while和do-while是两种常用的循环结构,本
    发表于 08-18 16:35 1149次阅读
    C<b class='flag-5'>语言</b>中while和do-while<b class='flag-5'>循环</b>的用法

    C语言中for循环的用法和应用 C语言中for循环与while循环的区别

    C语言中的循环结构时,for循环是最常用的一种。它允许重复执行一段代码,直到满足特定条件为止。
    发表于 08-18 16:33 1040次阅读
    C<b class='flag-5'>语言</b>中for<b class='flag-5'>循环</b>的用法和应用 C<b class='flag-5'>语言</b>中for<b class='flag-5'>循环</b>与while<b class='flag-5'>循环</b>的区别

    MATLAB之switch-case开关结构实例

    程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。理论和实践证明,无论多复杂的算法均可通过顺序选择循环这三种基本控制
    的头像 发表于 08-07 09:12 4026次阅读
    MATLAB之switch-case开关<b class='flag-5'>结构</b>实例

    条件语句/循环语句simulink的实现方法(二)

    for 循环是 Python 中用于遍历序列(如列表、元组、字符串等)的迭代结构。for 循环的本质是按照序列中的元素顺序执行代码块,并在每次迭代中获取序列的下一个元素。
    的头像 发表于 07-21 16:51 4257次阅读
    条件语句/<b class='flag-5'>循环</b>语句simulink的实现方法(二)

    MATLAB中条件语句和循环结构的使用方式

    MATLAB提供了多种条件语句和循环结构
    的头像 发表于 07-05 09:41 2514次阅读

    C语言基础知识(5)--循环语句

    C语言基础知识(5)--循环语句
    的头像 发表于 06-15 10:18 1390次阅读
    C<b class='flag-5'>语言</b>基础知识(5)--<b class='flag-5'>循环</b>语句