看到这个标题,相信大家很容易就知道我们今天了解的主题了吧,不错,今天带大家了解的是if语句,哎,很多同学就问了,这个if语句有什么可以讲的呢,这不是一个非常简单的知识点吗,但是真的是这样吗?

首先问大家一个问题,if后面的括号内可以跟什么?大家一想,哎,肯定是表达式啊,确实是这样,那么大家了解什么是表达式吗?表达式包括什么呢?相信很多人都给不出来一个准确且全面的答案,首先带大家了解一下什么是表达式吧。

官方定义:表达式是由一系列运算符和操作数组成的。这既是表达式的定义,也指明了表达式的组成成分。运算符指明了要进行哪一种运算和操作,而操作数则是运算符操作的对象。

大家需要注意一点,函数调用也算表达式的一种!

好像这也不是一个多么困难的点,但提起函数,相信大家都知道,函数是有返回值的,那么我们在此处为什么要提这个返回值呢?听我细细道来!

if 语句有什么功能呢?它的执行顺序是什么呢?大家有没有去深度的思考过这个问题,我们通常浅显的认为,if只有一个分支即选择功能,if的执行顺序是先进行条件判断,判断结果为真,就执行下面紧跟的语句块中的内容,否则就执行后面的语句,这样错了吗?这样并没有错,但我想跟大家说的是,这太浅显了,且是远远不够的,if语句有三个功能,执行功能,判定功能,分支功能

首先先说为什么说if语句有执行功能呢?大家都知道,if后面跟表达式对吧,这个表达式无论最终的返回值是多少,以及最终的判定是否成立,这个表达式必然会被执行。此处讲给大家解释,为什么前面我会提及有关于返回值,大家通常只知道我们自己定义的函数我们会设立返回值,事实上,库函数也有相应的返回值,比如sizeof()和strlen()函数,其它还有很多,不再一一列举,我想给大家强调一个点,那就是,赋值语句也是有返回值的,比如a = 0;这条语句的返回值就是0,依次类推a = 1;的返回值就是1,如果是5,则返回值是5,接下来给大家上代码演示一下。

此外给大家补充一个小小的知识点,printf()函数是有返回值的,返回值为输出的字符总数,返回值类型为int型,同样的,scanf()也是有返回值的,至于scanf()返回值的类型是什么,分三种情况,我只简单告诉大家一种情况,也是最基本的一种情况,就是正确按照指定格式输入字符的个数,此时的返回值的类型同样为int型,下面给大家代码展示一下。

有的函数并没有返回值,那么就不能作为if语句的判断表达式,下面也是给大家代码展示。

总结一下,if()这段语句执行的结果得到的是一个具体的数值或者逻辑值(C语言中也有bool类型,大家有兴趣的可以自己探究这个),然后就到了if的第二个功能,即判断功能。

判断功能的实现,相信大家也已经很了解了,概括来说,就是0代表假,非0代表真,进行判断,当然,这个功能大家虽然都了解,但却从来都没有人系统的说过,大部分我们了解的还是分支功能,然后就进入了分支功能。

至于if语句的分支功能,大家已经很了解了,此处不做过多的讲解,今天的重点就是if的执行功能上,然后得到返回值,其中易错的就是赋值表达式的返回值就是我们赋的值本身,另外一个需要注意的点就是库函数中的很多函数也有相应的返回值,这是我们很容易忽略的地方,好了,今天的分享就到这了,如果觉得对你有所帮助的话,希望大家点一个小小的赞可以吗?

if:听说,你很勇哦?相关推荐

  1. 听说你很厉害,来试试这个...

    刚在看开源中国动弹的时候,发现了这样的一条记录 很好奇这里提到的#文言#是什么项目,虽然程序员都是 直肠子, 但是这也太直白了一点.然后就点开了,这一点好像发现了新世界. 文言 项目是什么 文言(we ...

  2. 听说面试很少有人答出:距离最近点对问题

    作者 | 梁唐 来源 | TechFlow(ID:techflow2019) 头图 |  CSDN 下载自东方IC 大家好,我们今天来看一道非常非常经典的算法题--最近点对问题. 这个问题经常在各种面 ...

  3. Python or html爱心代码(听说最近很火)

    下面第四个 最近抖音莫名很火的一个爱心❤️ 实现的方法不尽相同,重要的是心意而不是代码本身 前三种用Python来实现,最后一种较为复杂,是用HTML来实现,是笔者搜集而来 1. from turtl ...

  4. 【两万字】面试官:听说你很懂集合源码,接我二十道问题!

    问题一:看到这个图,你会想到什么? (PS:截图自<编程思想>) 答: 这个图由Map指向Collection的Produces并不是说Map是Collection的一个子类(子接口),这 ...

  5. 听说Dataway 很牛逼 省去controller,service,dao 先记录下信息,后面再研究

    Hasor 官方文档: https://www.hasor.net/web/index.html Dataway 官方博客.里面内容很详细,想学习这套完整框架.最好去这两个地方看 https://my ...

  6. 听说图像识别很难,大神十行代码进行Python图像识别

    随着深度学习算法的兴起和普及,人工智能领域取得了令人瞩目的进步,特别是在计算机视觉领域.21世纪的第二个十年迅速采用卷积神经网络,发明了最先进的算法,大量训练数据的可用性以及高性能和高性价比计算的发明 ...

  7. C++:听说C++很难学?该怎么学习C++?

    C++以其复杂的语法.指针.内存管理.泛型编程等特性难倒了一大批IT学子.小编以CSharp入门,中途转C++的时候痛苦过一段时间,不过随着业务能力的精进,已经逐渐爱上这门功能强大.灵活的语言了. 下 ...

  8. 为什么DOM操作很慢

    转自:http://kb.cnblogs.com/page/534571/ 一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大家都会这样说,在网上学习了一些资料,这边整理出来 ...

  9. 程序员结婚晚回家怕出轨吗?老婆:不怕,老公是写代码的,忙得很!

    入了程序员这个坑,就不要再想有多少空闲时间了.我的一个程序员朋友和我诉苦:前端这份工作,太忙了,最近一个星期天天加班,都没时间陪家人.. 谁说不是呢,最近朋友公司刚接了一个大项目,前端项目组忙的哟,那 ...

最新文章

  1. 2018-3-20论文(一种新的群体智能算法--狼群算法)笔记一(引言中提到的的一些智能算法,以及自己的感想)
  2. Python: 大型数组运算
  3. Lock同步锁--线程同步
  4. 17:附近最大的城市
  5. 阿里大数据分析与应用(part3)--常用的大数据分析平台
  6. [机器学习] --- Getting Started With MachineLearning
  7. oracle导数卡死,oracle-审计导数
  8. java在线聊天项目 使用SWT快速制作登录窗口,可视化窗口Design 更换窗口默认皮肤(切换Swing自带的几种皮肤如矩形带圆角)...
  9. bitcoin转账api,python2.7
  10. docker本地构建kerberos单机环境
  11. 给Bert加速吧!NLP中的知识蒸馏Distilled BiLSTM论文解读
  12. Pensieve Multi_agent代码详解以及A3C强化学习代码详解
  13. vue导入音乐_vue-music:添加歌曲到队列add-song.vue
  14. python--批量离线安装python包
  15. 特征工程(1)特征工程的简介
  16. if-else过多,使用策略模式(Strategy)解决if-else乱象
  17. 去掉txt文件内的换行符
  18. Sers微服务2.1.1
  19. 驱动 | Linux | NVMe | 2. nvme_probe
  20. javaMail实现发邮件功能

热门文章

  1. 弘辽科技:为什么要设置淘金币?淘金币该如何设置?
  2. 利用python一键修改host 一键上网
  3. DockOne微信分享( 八十九):恒生金融交易系统的Docker化实践
  4. [转]纪念一位消失的淘宝店主
  5. 200 行代码实现一个简单的区块链
  6. 2007,高考能否与新课程同行(上篇)
  7. iOS很坑的error:
  8. js常见的几种排序法
  9. 逸仙电商逆流而上 国货化妆品的“进化与蝶变”
  10. Google Analytics10条有用教程(转)