2 判断执行语句

判断执行语句,执行时候会有一个条件判断,一旦当条件判断为真,即True的时候,就执行相应的语句,满足条件被执行的语句用大括号“{}”括起来。由于在C语言中没有用于表示布尔类型的变量(即逻辑变量),因此在C语言中只要判断条件为0,就认定为假(False),非0,就认定为真(True)。

判断执行语句的关键词用“if”表示,一般形式为:if(判断条件) {执行语句}。

举一个例子来说,写一段程序,当变量值大于100,就打印出“Greater than 100”。那这个程序可以写成如图3-8-2所示。

图3-8-2 判断执行语句

在图3-8-2所示的代码中,分别对number1和number2两个变量用“if”进行判断,这里“if”的判断条件就是一个关系运算语句,一旦当“number1 > 100”这个条件成立,就执行“{}”里面的打印语句,而由于“number1 > 100”条件不成立,因此这个表达式的结果其实是为0,即“if”里面的条件不满足,因此不执行打印语句。同样的,由于“number2 > 100”这个条件满足,因此进入到“if”语句的“{}”里面来,执行打印语句。

接下来,我们来做一个复杂一点的函数,在键盘上输入一个按键,判断它是否为数字,如果为数字,就将它打印出来。这里要介绍到一个“getchar();”函数,这个函数也是C语言的标准输入输出库提供给我们的,因此我们在使用的时候,也要包含“stdio.h”。一旦“getchar();”函数被调用到,终端或者控制台会等待用户在键盘上输入一个字符,等到用户输入完成之后,这个函数将会获得输入的字符,返回给我们所定义的变量。具体实现代码如图3-8-3所示。

图3-8-3 判断一个输入字符是否是数字

图3-8-3主要的一句判断语句为“if((c_to_input >= '0') && (c_to_input<= '9'))”,我们之前讲到,一个字符输入之后,实际上计算机获得到的是其ASCII码,而计算机中数字的ASCII码是按照顺序排下去的,“0”的ASCII码最小,接着顺序排列“1”,“2”……“9”,因此我们只需要判断输入的字符是否在“0”到“9”之间,如果在这个范围内,就表示输入的字符是个数字,因此就可以执行大括号里面的打印语句了。还有一点需要注意下,有时候if的判断条件用一条判断语句完全不够,就如我们的图3-8-3例子中所示,因此需要用到复合的表达式,在用复合表达式的时候,尽量使用括号语句显示地指明其优先级,这样就不容易出错,虽然用运算符自身的优先级也能正常运行,但有时候写的清晰一点比较易读,直观。

我们测试的结果为,当输入字符“5”的时候,为数字,因此打印出“5”,而第二次输入的字符为小写的“c”,因此程序直接跳过if语言不执行。还有一种方法大家可以尝试下,直接利用ASCII码去做判断,这里就不再赘述。

“if”除了单独使用外,还可以和“else”连用,但这种形式与其说是判断执行语句,还不如说是选择执行语句,我们放到下面再说。这里还要说明的是,if语句可以嵌套使用,如我们要判断一个输入的字符是否为数字,如果是数字就打印出来,同时还要判断这个字符是否是小于5的数字,如果是,再打印一遍。这时候,就可以使用if的嵌套语句了,如图3-8-4所示。

图3-8-4数字判断

图3-8-4中,第一个if判断的条件和图3-8-3中一样,是判断输入字符的是否为数字,而在if满足之后的程序里面,再一次判断了一次,这个数字是否大于5,如果是大于5,那么就输出这个数字是大于5的。这就是if的嵌套,我们可以总结如图3-8-5的程序结构。

图3-8-5 if程序结构

其实,每个程序运行的主要顺序,是我们前一小节里面讲到的顺序执行,只不过在我们需要去让程序改变顺序执行的方式时,在需要的地方增加一个“if”。当然一个程序里面,允许存在多个“if”,我们可以举一个例子来看,还是基于字符判断的程序,输入一个字符,判断其为,数字,小写字母,大写字母,写出一个程序,分别对输入的字符进行判断,程序实现的代码如图3-8-6所示。

图3-8-6多个判断条件

c语言 判断一个图是否全连通_【连载】(判断执行语句)乐创DIY C语言讲义——3.8节(2)...相关推荐

  1. c语言 判断一个图是否全连通_基于云平台的全链路大规模网络连通性检测系统详解...

    虚拟网络排查问题困难,传统的traceroute等工具很难起到太大作用,大部分情况下都需要到宿主机.混合云网关上抓包来troubleshooting,耗时又费力.有些场景中包的传送路径比较长(如跨域. ...

  2. c语言 判断一个图是否全连通_C语言:程序运行流程图与顺序结构语句

    程序运行流程图 流程图是描述问题处理步骤的一种常用图形工具,它是由一些图框和流程线组成的.流程图描述问题的处理步骤,形象直观,便于阅读.画流程图时必须按照功能选用相应的流程图符号,常用的流程图符号如下 ...

  3. java 判断一个数字是2倍数_如何判断语言发育迟缓的原因|一个2岁半不会说话的案例...

    前段时间,有邻居向我咨询,说自家孩子已经2岁半多了,还是不会说话,让我看看要不要紧.我就在小区和她儿子玩了一会儿. 小男孩长得白白嫩嫩胖乎乎,活泼可爱.他也挺喜欢我,会把捡到的树叶小树枝送给我.他要走 ...

  4. 判断一个图是否为树(有向图以及无向图)

    整理的算法模板合集: ACM模板 目录 判断一个图是否为树 1. 无向图(hdu 1272 小希的迷宫) 2. 有向图(hdu 1325 Is It A Tree?) 判断一个图是否为树 1. 无向图 ...

  5. (HDU4324)判断一个图中是否存在两点的出度相同

    题目:Triangle LOVE 因为每两个点一定有且仅有一条指向边,那么先假定点按顺序1,2,....n,每个点一定指向后面的点,即1指向2,3,4.....n,2指向3,4,5....n..... ...

  6. 程序实现switch语句判断年龄_【回顾】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4)...

    文    |    Edward 4 选择执行语句有些时候,我们希望程序既不顺序执行,也不只做单一的判断(代码运行还是不运行),很多时候,我们往往只希望对某一个条件的不同状态分别执行不同的语句,这样就 ...

  7. 图论--拓扑排序--判断一个图能否被拓扑排序

    拓扑排序的实现条件,以及结合应用场景,我们都能得到拓扑排序适用于DAG图(Directed Acyclic Graph简称DAG)有向无环图, 根据关系我们能得到一个线性序列,实现的方式是DFS,具体 ...

  8. C语言中判断一个三位数是否是水仙花数,判断三位数是否为水仙花数

    用C语言写出判断一个三位数是否为水仙花数的程序 请给正确的答案,不懂的别进 1.一个主程序,输出所有的水仙花数程序,可参考如下: #include int main(int argc, char *a ...

  9. 判断图有无环_【转】判断一个图是否有环 无向图 有向图

    无向图: 法1: 如果存在回路,则必存在一个子图,是一个环路.环路中所有顶点的度>=2. n算法: 第一步:删除所有度<=1的顶点及相关的边,并将另外与这些边相关的其它顶点的度减一. 第二 ...

最新文章

  1. Java 抖音授权登录
  2. oracle 里面定时执行任务,比如存储过程内容等
  3. mysql查看比较大的数据表_mysql 如何查看哪些表数据量比较大
  4. python需要变量命名规则_和孩子一起学习python之变量命名规则
  5. android 会话 java_java – Android会话管理
  6. 用Python标准库turtle画一头金牛,祝您新年牛气冲天!
  7. 【译】你不知道的 Chrome 调试工具技巧 第二十天:Workspace的黑魔法
  8. 使用Tensorflow Lite创建一个Android AI应用
  9. 程序员如何勇敢说“不”!
  10. 秒杀的倒计时按钮实现
  11. pythonATM,购物车项目实战_补充6-lib模块
  12. 深入学习GridBagLayout
  13. 千兆网卡为什么慢_宽带300M,光猫是千兆的,电脑网卡和无线路由器都是千兆的。但是速度仍是100M。这是为什么?...
  14. [游戏开发]iOS 游戏开发教程资源
  15. Android记账本APP开发进阶版
  16. C语言程序设计-翁恺(初学者日记)
  17. ocmt:高维固定效应模型的变量筛选问题
  18. 把图片压缩成指定大小,释放你的内存空间
  19. 六【 SpringMVC框架】
  20. Grid Control一些术语GC、OMS、OMR、OMA的概念

热门文章

  1. 让Mootools的语法结构像Jquery那样
  2. *福音*阿里云redis5.0.*集群搭建及java代码测试详细(终于不用ruby了)
  3. css 设置overflow:scroll 滚动条的样式
  4. scrapy架构设计分析
  5. Hadoop平台搭建
  6. 软件工程期末考试 AHNU
  7. 关于 IHTMLDocument4 在 Delphi7.0 中不能编译的的解决方法
  8. Linux之at命令
  9. Hbase常用基础命令
  10. Python数据可视化的四种简易方法 1