什么是 if else 呢? if else 可以理解为就是如果.....否则..... 如果条件成立,则执行if里的语句,当然,如果不成立,那么就执行else的语句。
下面做个小练习
猜猜看这里的输出结果是什么
是"成年" 还是"未成年 不能谈恋爱"
哈哈,都不是
这里输出的是 "成年 不许谈恋爱"
这是为什么呢? 这是因为 分支语句if else 只能控制单条语句,意思就是这里输出的age的虽然>18,在 if 和 else 之中执行if之中的语句。但是执行完毕之后本应该跳过下面else的分支语句,但是这里却没有跳过去,仍然输出了不能谈恋爱。这是因为if else 语句只能控制一条语句,所以这里只跳过了else里的第一条语句"未成年" 而没有跳过第二条"不许谈恋爱"
如果想跳过整个else部分的语句的话,则可以加一个{ } 将else后面的语句括起来,就可以将他们变为整个else部分的语句。
这里就提醒我们,一个好的编码风格很重要
一定要尽早养成好的编码风格
if else是单分支,那么多重分支我们该怎么写呢,我们在对应的else后面继续写一个if 并且再次写上第二个if分支里面的条件,以此类推。 示例如下图
下面我们再来做一个小测试
下图打印的会是什么呢?
这里打印的是 空 ,也就是任何东西都不打印。
原因就是因为,a=0就是假,则应该选择else语句,而不是执行if语句。但是问题来了,这里为什么没有选择打印"haha"呢? 那是因为这里的printf "哈哈"其实对应的是上一条if b==2语句,而不是第三行的if a==1语句。这么说可能不太直观。下面我们将规范的写一下这段代码就会很明白。
在这里可以清晰的看到,else是和第二个if相对,而不是和第一个if相对,所以第一个if的else应该是空。所以我们什么都没有打印。
这种方法相对于上面那张图会更标准一些。我们运用大括号将局部代码扩起来,将他们视为一个部分。这样就会十分的清晰。
下面是两个小练习,可以自己动手实现。
(1) 输入一个输入判断它是否是奇数
(2) 输出1~100内所有的奇数
答案:
此次我的学习过程就到这里了。这也是我这一节课的所听,所感,所悟。 我c语言的老师是b站的比特鹏哥,如有兴趣,可移步学习。