关于学C语言的事(2)
(注:此文适用于已学习到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)相关推荐
- c语言中平均值用什么表示_学C语言有什么用?
这个也是我刚学C语言的疑问,当时总是写一些比较大小,排序之类的函数,很是枯燥,也学的不怎么样.学东西是要有用它的地方才有动力继续学习, C语言的应用很广的,比如 我以前学习的单片机,现在学习的嵌入式, ...
- java哪个软件编程好学吗_java好学吗?java是不是最难学的语言?
1. java好学吗? 从某些方面来说,java比较容易学,如果是大学毕业,大学计算机专业里大多开设了java基础课程,或者学过一点编程,学起java来也会轻松不少.即使是零基础也不用担心,java可 ...
- 什么是编程语言,大神教你为什么要学C语言?
首先来说说编程语言这个概念. 编程,其实就是让计算机听懂自己的话,让计算机帮自己想干的事情.编程语言,就是让你能够和计算机进行交流的一种语言.说白了就是让你的软件按你的命令干活. 打比方说,我们经常在 ...
- 2c语言程序设计_大学生学C语言的理由是什么
不止一个学生问到我:"老师,为什么我们的应用程序设计要学C语言而不是别的?C语言不是已经过时了吗?如果现在要写一个Windows程序,用VB或Dephi开发多快呀,用C行吗? 这个问题三言两 ...
- java后台好学吗_java好学吗?java是不是最难学的语言?
java好学吗?java是不是最难学的语言?对于一些刚接触java的朋友来说,可能会有这样的疑问,下面就来一起了解下吧. 1. java好学吗? 从某些方面来说,java比较容易学,如果是大学毕业,大 ...
- c语言程序设计需要学多久,九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会...
九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会 首页 > C语言 > 九江c语言编程学习 作者:镀金池 发布时间:2017-10-18 14:11 据ID ...
- 零基础学C语言设计难吗,【经验分享】零基础想学C语言,过来人提醒大家几点...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先告诉你的是,零基础学习开始学习C语言/C++肯定难,C语言的专业程度本身就不简单,学习这事本来就是一件非常煎熬的事情,人都不愿意学习,可是没办法,为了 ...
- 先学java还是c_先学C语言还是Java
Java语言是在C语言的基础上发展起来的,所以C语言与Java有着密切的联系,那么想学Java编程需要C语言基础吗?不懂C语言能学好Java吗?先学C语言还是Java比较好呢?我们一起来看下! 很多人 ...
- 安庆师范大学c语言程序设计,安庆c语言编程学习,安庆学c语言编程培训,安庆学c语言编程一般能拿多少工资...
安庆c语言编程学习,安庆学c语言编程培训,安庆学c语言编程一般能拿多少工资 首页 > C语言 > 安庆c语言编程学习 作者:镀金池 发布时间:2017-10-18 15:20 假定我们 ...
最新文章
- 今日头条”入局搜索:流量巨头的生存空间之战!
- MySQL修改字符集步骤(字段插入中文提示错误时解决办法)
- Semantic-UI的React实现(二):CSS类构造模块 1
- 详解Bootstrap glyphicons-halflings-regular.woff2 Not found
- java包管理之maven安装
- 现在企业编程用java还是python_想转行做程序员,是学习 Java 还是 Python 更好?
- java selenium (十一) 操作弹出对话框
- mac头和ip头部详解
- L298N电机驱动模块的使用
- vivado 开发教程(四) 行为仿真
- NOI题库答案(1.1 编程基础之输入输出)
- RS232(串口线)转RJ45(网线)
- php paypal网站对接,php 接入 paypal 支付
- 34. OP-TEE中system call的实现
- 从Altium官方网站下载库文件
- 在线学习及作业平台管理系统(ssm,mysql)
- matlab开关电源仿真软件,做开关电源,一般用什么仿真软件?
- HTTP 请求之PostMan 中文乱码分析
- 4种常见的鉴权方式及说明
- Java方法工厂,接口,常用日期类Date面向对象,匿名内部类局部类
热门文章
- linux系统下 桌面被放大如何还原,电脑屏幕变大了怎么还原?电脑屏幕变大的还原方法...
- 一个批量数据导入的实现方案
- New Bing AI搜索引擎初体验-基于ChatGpt4
- 手机号码查询-整提供 Demo 代码示例及数据专业且全面的 API 查询接口
- 课程设计-推箱子C#(win form)
- python和php什么关系,什么是python?与PHP有什么区别?
- js对象长度与js数组长度
- Linux命令大全(入门必备)
- 华为鸿蒙到底卡不卡,值得买的高端手机有哪些?看完才明白国产手机有多强!...
- Redis锁解决高并发问题