·if语句
(1)if
if语句的语法形式如下:
if(表达式)
语句
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行
在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果不是0,则语句执行。
例子:输入一个整数,判断是否为奇数
(2)else
例子:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。
(3)嵌套if
例子:输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:⾮正数。
上⾯的代码中蓝色背景的代码也是嵌套在 if 语句中的,构成了嵌套的 if 语句。
(4)悬空else问题
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
运行以下代码
运⾏代码,输出的结果是:啥都不输出。
原因:else 是和第⼆个 if进行匹配的,这样后边的 if...else 语句是嵌套在第⼀个 if 语句中的,如果第⼀个 if 语句就不成立,嵌套 if 和 else 就没机会执行了,最终啥都不打印。
如果我们希望else确实和第⼀个if匹配,可以这样修改代码:
·关系操作符
C语⾔⽤于⽐较的表达式,称为“关系表达式,⾥⾯使⽤的运算符就称为“关系运算符”,主要有下⾯6个。
• > 大于运算符
• < 小于运算符
• >= 大于等于运算符
• <= 小于等于运算符
• == 相等运算符
• != 不相等运算符
关系表达式常⽤于 if 或 while 结构。
重点:多个关系运算符不宜连用。
i < j < k
上面示例中,连续使⽤两个小于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果,即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。
(i < j) < k
上面式⼦中, i < j 返回 0 或 1 ,所以最终是 0 或 1 与变量 k 进行比较。如果想要判断变量 j的值是否在 i 和 k 之间,应该使⽤下面的写法。
i < j && j < k
·条件操作符
条件操作符也叫三目操作符,需要接受三个操作数的,形式如下:
exp1 ? exp2 : exp3
条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果
exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
·逻辑操作符
• ! :逻辑取反运算符(改变单个表达式的真假)。
• && :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
• || :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
注ÿ