搜索
bottom↓
回复: 1

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

[复制链接]

出0入234汤圆

发表于 2022-4-2 15:25:47 | 显示全部楼层 |阅读模式
以下文章来源于:公众号:开源电子网,读取更多技术文章,请扫码关注
讨论发帖图.png


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


     前言
       社会上习惯于把科学和技术连在一起,统称为科学技术,简称科技。实际二者既有密切联系,又有重要区别。科学解决理论问题,技术解决实际问题。

     01. 顺序结构

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

          1.png


     02. 分支结构

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

         2.png

      选择结构if,具体用法如表格所示:
  1. <font size="2">case整型常量表达式2:
  2. [语句2;break;]
  3. case整型常量表达式3:
  4. [语句3;break;]

  5. [default:
  6. 语句n;break;]
  7. }</font>
复制代码


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

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

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


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


03. 循环结构

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

       while语句也称while循环,具体使用格式如下:
  1. <font size="2">while(表达式)

  2. 语句</font>
复制代码

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

       dowhile语句也称dowhile循环,具体使用格式如下:
  1. <font size="2">do
  2. 语句
  3. while(表达式)</font>
复制代码

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

       for语句,相对前面两个循环语句复杂一点,具体使用格式如下:
  1. for(表达式1;表达式2;表达式3)

  2. 语句
复制代码

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

          3.png

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

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

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


出0入0汤圆

发表于 2022-4-2 22:00:48 | 显示全部楼层
真的是基础啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-7-2 04:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表