C语言——分支相关知识(上)

目录

一.前言

本人是一个C语言初学小白,可能一些观点有些错误,欢迎大家的提出见解,谢谢。

二.正文

     C语言是结构化的程序语言,这里的结构指的是顺序结构、选择结构、循环结构,而本文我们所讲的是使用if、switch来实现分支结构

1.if语句

   1.1  if

 if语句的语法如下: 

    表达式成立(为真),则语句成立,反之,表达式不成立(为假),则语句不执行。 

    值得注意的是:在C语言中,0为假,非0为真,也就是说表达式的结果如果是0,则语句不执行,表达式的结果不是0(1,2,3等等均可),则语句运行。

    if语句的流程图:

   if语句的简单使用:

1.2  else

经过上面的例子你可能有一个问题:成绩大于等于60算是数学成绩及格,那成绩小于60我们应该怎么表示呢?

这里就需要if、与else的搭配使用了,大致模板如下:

通过if与else的搭配使用,我们可以修改上面的示例:

1.3分支中包含多条语句

   默认情况下if与else语句中都只控制一条语句,而分支中通常包含多条语句,而且如果你没有将这多条语句用{}括起来,将会造成一些误会,情况如下:

很明显,你明明已经考取满分了,老师怎么可能还会批评你呢,老师夸你还来不及呢。如果我们“数学成绩不合格”与“老师将会批评你”用{}括起来呢?请看下面代码展示:

从以上代码结果不难看出,else用{}括起来后可以可以管理“数学成绩不合格”与“老师将会批评你”这两条语句。因此如果所写的代码中if或else有需要掌管多条语句的话,一定要使用{}括起来,避免代码出错。

1.4if嵌套

  在if  else语句中,if语句与else语句可以相互嵌套,例子如下:要求输入一个整数,判断该数是整数0,还是正数又或是负数。

如图所示,2.if与3.else被嵌套于1.if中。2.if与3..else相配套、1.if与4.else相配套。对于else就相当于是if的否定,如num>=0的否定就是num<0即num是负数。

1.5  else悬空问题

如果有多个if和else,可以记住这样一条规则,else总是跟最接近的if相匹配。

对于初学者来说对于本条代码的结果可能是world,或则是hello。事实真的是如此吗?让我们运行一下代码试试看:

是不是很吃惊,输出的结果是空的的,那么这是怎么一回事呢?

这就是悬空else的问题,如果有多个if和else,可以记住这条规则,else总是跟最近的if相匹配。

并非if与else相对应就是互相匹配的

本段代码的实际是第二个if与else相匹配并一起被嵌套于第一个中,当a=0的时候已经不满足了这一整个整体因此代码结果就是空的,加入{}更好理解:

因此大家在日常的学习中应该学会使用{}这样会使你的代码可读性更高,毕竟代码不仅仅是给自己看的,也是给别人看的。况且也会使程序员本身在敲代码的过程中思路更清晰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值