正文
#1.if
if语句,是一个条件判断语句。其语法形式如下:
若为真(表达式成立),则执行;反之若为假,则不执行。
此处涉及到C语言判断真假的逻辑,在C语言中,0为假,非0为真。
也就是说表达式的结果如果是0,则语句不执行,表达式的结果如果不是0,则语句执行。
这是一个判断数字a是否为奇数的if语句代码。
其运行逻辑如上图所示。
#2.else
要想让if语句的判断逻辑完整,光有if是不行的。需要配合else对if语句进行补完。
例如刚才举出的例子,实际上是一个残缺的代码。我们要想输入一个随机整数,来判断它是奇数还是偶数,就需要用到 if...else... 语句
通过 if...else...补完后的完整代码如下
假设输入数字为4,经过if判断后为假,跳过if语句并进入else语句,最后打印偶数。
#3.语句控制问题
下面来展示一个初学者可能都会遇到的问题
在 if语句下面跟随两个及多条语句时,运行代码时无论输入什么数字,都会打印“nihao”。
这是因为 if在语句中语句只能控制一条语句,else也是一样。
那我们如果想让if同时控制这两条语句该怎么办呢?
这时候,我们可以在if下面加一个{}把两条语句括起来。
else同理
这个时候,如果输入大于18的数字,就会同时打印语句,如果小于18,则两条语句都不会被执行。
#4.嵌套if语句
当需要用if...else...对复杂问题进行判断时,单个if...else...语句已经不能解决问题。这时就需要在一个if语句中嵌套另一个if语句,来进行多重判断。
而且在 if...else...中,else是可以和另一个if连用的。
依旧是使用第一个例子进行示范。这里我把另一个if...else...放到了else的下方。
实际操作中放置于 if 还是 else 下面可以根据需求任选。
当然,这样多重大括号的写法有时也不免显得臃肿。
我们也可以省略掉大括号,写成 else if 的形式。
#5.悬空else代码问题
先来看这样一个代码
这个代码非常具有迷惑性,很多人容易把else和第一个if进行配对,从而得出错误的代码结果。
实际上这个代码的最终结果是,什么也不打印。因为else总是和距离它最近的if进行配对,所以当第一个if条件为满足时,代码并不会进入else,而是直接结束。
那如果我们想让else语句和第一个if配对该怎么办?
可以将第二个if通过大括号放进第一个if内。这样就可以使得else和第一个if进行配对,从而输出
“nothing”