(注:此文适用于已学习到C语言中if语句的同志)

这两天一直在纠结一个问题,就是

这两种形式到底有什么区别?
曾经我一度以为这两种写法是一样的意思,直到我遇到了下面这个代码:
题目是:写一个代码,使得输入的三个数,在输出时,按从大到小排列。

下面这个是我看视频时学会的代码。(文末会附上我看到题时自己写的代码)
正如显示的那样,当我输入6 9 10 这三个数时,运行代码后屏幕显示出了按顺序排好的10 9 6 .没问题,是我们想要的结果。

但是,可达鸭眉头一皱,发现事情并不简单。
如果我在第二和第三个if前面加上else,结果会一样吗?
说干就干,于是:


显然,结果出错了,它输出的是9 6 10 .并非我们想要的从大到小排列。
于是问题显然就出在if 和 else if 身上,二者到底有何区别呢?
在多方咨询无果后,终于,我在一位师兄那里得到了解答,下图为他给我的解释(绿色字体):

(注:对于 if()语句,如果括号内的内容判断为真,则会执行该if语句,如果判断为假,则不执行该语句,相当于这一段代码被屏蔽掉了)
于是我明白,①和②的区别就在于:
①中,不论第一个if()语句括号内的判断内容是否为真,系统都会对所有的if语句(即第二个、第三个…)括号内的内容都进行判断。
对于每一个被判断的if语句来说,若判断为真,则执行if()语句所对应的“{ }”里的内容,否则不执行。

而②中,系统判定的逻辑与①大不相同,是:如果第一个if()语句括号内的内容为真,则执行该if语句花括号的内容,同时,直接忽略后面所有的else if的语句,来到“return 0;” 处,程序结束。
而只有当第一个if()语句括号内的内容判断为假时,才会继续判断下面的else if()的内容,如果判断为真,则执行其花括号里的内容,同时,会忽略其下方的所有其他的else if语句(与上面一样),如果判断为假,则忽略该else if 语句,继续判断下面的else if 语句……以此类推。

总之,就是说,代码在执行过程中,如果是用②的写法,那么只要有一个if语句或else if语句判断为真,就会立刻执行这个被判断为真的if语句或else if 语句,同时自动屏蔽掉其他的if 和 else if 语句; 而如果用①的写法,那么系统就都会判断,不存在说有一个if 语句被判断为真后就会屏蔽其他if 语句,这种情况是不存在的。

好了,以上就是我想说的,这些资料我在辅导书里的if语句知识那块找不到,所以都是自己找人问出来的,写在这里一个就当是做个笔记,万一忘了就还可以翻出来复习,二个是给和我遇到同样问题的同志们解个惑,就当是分享叭。最后,手机码字不易,觉得有用的给个赞

关于学C语言的事(2)相关推荐

  1. c语言中平均值用什么表示_学C语言有什么用?

    这个也是我刚学C语言的疑问,当时总是写一些比较大小,排序之类的函数,很是枯燥,也学的不怎么样.学东西是要有用它的地方才有动力继续学习, C语言的应用很广的,比如 我以前学习的单片机,现在学习的嵌入式, ...

  2. java哪个软件编程好学吗_java好学吗?java是不是最难学的语言?

    1. java好学吗? 从某些方面来说,java比较容易学,如果是大学毕业,大学计算机专业里大多开设了java基础课程,或者学过一点编程,学起java来也会轻松不少.即使是零基础也不用担心,java可 ...

  3. 什么是编程语言,大神教你为什么要学C语言?

    首先来说说编程语言这个概念. 编程,其实就是让计算机听懂自己的话,让计算机帮自己想干的事情.编程语言,就是让你能够和计算机进行交流的一种语言.说白了就是让你的软件按你的命令干活. 打比方说,我们经常在 ...

  4. 2c语言程序设计_大学生学C语言的理由是什么

    不止一个学生问到我:"老师,为什么我们的应用程序设计要学C语言而不是别的?C语言不是已经过时了吗?如果现在要写一个Windows程序,用VB或Dephi开发多快呀,用C行吗? 这个问题三言两 ...

  5. java后台好学吗_java好学吗?java是不是最难学的语言?

    java好学吗?java是不是最难学的语言?对于一些刚接触java的朋友来说,可能会有这样的疑问,下面就来一起了解下吧. 1. java好学吗? 从某些方面来说,java比较容易学,如果是大学毕业,大 ...

  6. c语言程序设计需要学多久,九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会...

    九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会 首页 > C语言 > 九江c语言编程学习 作者:镀金池   发布时间:2017-10-18 14:11 据ID ...

  7. 零基础学C语言设计难吗,【经验分享】零基础想学C语言,过来人提醒大家几点...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先告诉你的是,零基础学习开始学习C语言/C++肯定难,C语言的专业程度本身就不简单,学习这事本来就是一件非常煎熬的事情,人都不愿意学习,可是没办法,为了 ...

  8. 先学java还是c_先学C语言还是Java

    Java语言是在C语言的基础上发展起来的,所以C语言与Java有着密切的联系,那么想学Java编程需要C语言基础吗?不懂C语言能学好Java吗?先学C语言还是Java比较好呢?我们一起来看下! 很多人 ...

  9. 安庆师范大学c语言程序设计,安庆c语言编程学习,安庆学c语言编程培训,安庆学c语言编程一般能拿多少工资...

    安庆c语言编程学习,安庆学c语言编程培训,安庆学c语言编程一般能拿多少工资 首页 > C语言 > 安庆c语言编程学习 作者:镀金池   发布时间:2017-10-18 15:20 假定我们 ...

最新文章

  1. 今日头条”入局搜索:流量巨头的生存空间之战!
  2. MySQL修改字符集步骤(字段插入中文提示错误时解决办法)
  3. Semantic-UI的React实现(二):CSS类构造模块 1
  4. 详解Bootstrap glyphicons-halflings-regular.woff2 Not found
  5. java包管理之maven安装
  6. 现在企业编程用java还是python_想转行做程序员,是学习 Java 还是 Python 更好?
  7. java selenium (十一) 操作弹出对话框
  8. mac头和ip头部详解
  9. L298N电机驱动模块的使用
  10. vivado 开发教程(四) 行为仿真
  11. NOI题库答案(1.1 编程基础之输入输出)
  12. RS232(串口线)转RJ45(网线)
  13. php paypal网站对接,php 接入 paypal 支付
  14. 34. OP-TEE中system call的实现
  15. 从Altium官方网站下载库文件
  16. 在线学习及作业平台管理系统(ssm,mysql)
  17. matlab开关电源仿真软件,做开关电源,一般用什么仿真软件?
  18. HTTP 请求之PostMan 中文乱码分析
  19. 4种常见的鉴权方式及说明
  20. Java方法工厂,接口,常用日期类Date面向对象,匿名内部类局部类

热门文章

  1. linux系统下 桌面被放大如何还原,电脑屏幕变大了怎么还原?电脑屏幕变大的还原方法...
  2. 一个批量数据导入的实现方案
  3. New Bing AI搜索引擎初体验-基于ChatGpt4
  4. 手机号码查询-整提供 Demo 代码示例及数据专业且全面的 API 查询接口
  5. 课程设计-推箱子C#(win form)
  6. python和php什么关系,什么是python?与PHP有什么区别?
  7. js对象长度与js数组长度
  8. Linux命令大全(入门必备)
  9. 华为鸿蒙到底卡不卡,值得买的高端手机有哪些?看完才明白国产手机有多强!...
  10. Redis锁解决高并发问题