C语言是结构化的程序设计语言,这里的结构化指的是:顺序、选择、循环结构,仔细分析,我们日常常见的事情都可以分为这三种结构或者三种结构的组合。
if语句
if语句的语法形式如下:
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。
在C语言中0表示为假,非0表示为真,也就是说,表达式的语句为0,则语句补执行,表达式的结果不为0,则语句执行。
例:输入一个整数,判断是否为奇数。
注:如果在表达式后面加;“;”号,会默认有一个空语句在“;”前面,此时if语句控制的语句就不再是括号内的表达式了,被控制的语句将会是空语句,则会产生错误。
else
如果一个属不是奇数,那就是偶数,我们要如何判断一个数是奇数还是偶数呢,这里就要用到if...else...语句了。
语法形式如下:
例:输入一个整数,判断是否为奇数,如果是奇数则打印奇数,是偶数则打印偶数。
分支语句中包含多条语句
默认情况下,if..else..语句只能跟一条语句,因为if语句只能控制一条语句,如果想要跟多条语句的话,需要添加{}符号。否则程序将会报错。
上述语句输出结果会产生问题,原因就是if和else都只能控制一条语句,此else语句中有两条语句且没有大括号,所以打印输出结果时,下面一条printf()是不受else控制的,所以会产生错误,正确的方法如下:给else中的语句添加大括号即可。
嵌套if
在if else语句中,else可以与宁一个if语句连用,构成多重判断,
如:要输入一个整数,判断输入的整数是0,还是整数或者负数。
还可以简写成后面一张图那样,更为简洁易懂。
练习:
悬空else的问题
如果有多个if...else语句,可以记住这样的一个规则,else总是跟最接近的if匹配。
如果强制想让else与更远的if进行匹配,我们可以在中间的if添加大括号,就可以做到。