4.2 关系运算符、逻辑运算符、条件运算符.
4.2.1 关系运算符和关系表达式
1.关系运算符:关系运算符用于判断两个操作数的大小关系。在C语言中有6个关系运算符
运算符 含义
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于
注意:①关系运算符都是双目运算符,其结合方向是左结合;
②关系运算符的优先级低于算术运算符,但是高于赋值运算符;
③关系运算符中,>、<、>=、<=的优先级相同,==、!=的优先级相同,前者的优先级高于后者,即“>=”的优先级高于“==”。
2.关系表达式:用关系运算符将两个表达式连接起来的句子称为关系表达式。关系表达式的一般形式为:
表达式1 关系运算符 表达式2
功能:比较两个表达式的大小,返回一个逻辑值。
4.2.2 逻辑运算符和逻辑表达式
1.逻辑运算符:
运算符 | ! | && | || |
名称 | 逻辑非 | 逻辑与 | 逻辑或 |
结合性 | 右结合 | 左结合 | 左结合 |
优先级 | 高→低 |
注意:与运算符&&和或运算符||都是双目运算符,非运算符!为单目运算符。
2.逻辑表达式:用逻辑运算符将两个表达式连接起来的句子称为逻辑表达式。逻辑表达式的一般形式为:
表达式1 逻辑运算符 表达式2 或 逻辑运算符 表达式1
逻辑表达式的结果也是一个逻辑值“真”或“假”,即为“1”或“0”。逻辑运算真值表如下:
x y !x x&&y x||y
0 0 1 0 0
0 非0 1 0 1
非0 0 0 0 1
非0 非0 0 1 1
表 :各种运算符的优先级从高到低的顺序
运算符 | ! | 算术运算符 | 关系运算符 | &&和|| | 赋值运算符 |
结合性 | 右结合 | 右结合 | 右结合 | ||
优先级 | 高→低 |
4.2.3 条件运算符和条件表达式
1.条件运算符:条件运算符由“?"和":"两个符号组成,用于条件求值,它是一个三目运算符,需要三个操作数。条件运算符的优先级低于逻辑运算符、高于赋值运算符,它是右结合的。
2.条件表达式:由条件运算符将3个表达式连接起来的式子称为条件表达式,其一般形式为: 表达式1?表达式2:表达式3; 条件表达式的执行顺序是:先计算表达式1的值,若值为非0,表示条件为真,则将表达式2的值作为整个条件表达式的值,否则,将表达式3的值作为整个表达式的值。
4.3 使用if—else实现分支机构
4.3.1 if——else语句
1.双分支if语句: if(表达式) 语句1;else语句2;
双分支if语句流程图:
2.单分支if语句: if(表达式) 语句;
4.3.2 if语句的嵌套:if语句的基本形式: if(表达式) 语句1;else 语句2;
其中:“语句1”或“语句2”都可以嵌套另一个if语句,在缺省else部分的if语句中的“语句”也可以嵌套另一个if语句。因此,具体嵌套形式有很多种。
if语句嵌套结构流程
4.3.3 多分支if语句:多分支if语句是最常用的实现多路分支的方法。其一般形式为:
if(表达式1) 语句1;else if(表达式2) 语句2;...else if(表达式n-1) 语句n-1;else 语句n;
多分支结构流程
4.4 使用switch语句实现分支结构。
在C语言中还提供了一种switch语句也可以实现多分支的选择。
switch多分支结构执行流程
关于switch语句的几点说明:
①switch后的表达式可以是任何表达式,其值只能为整型、字符型、枚举型之一;
②每个case后面的常量表达式的值互不相同,否则就会出现互相矛盾的现象;
③各个case和default的出现次序不影响执行结果;
④可以让多个case共用一组执行语句;
⑤switch语句允许嵌套使用。
1.在switch语句格式中的每个语句后面都使用break语句;
2.在switch语句格式中的部分语句后面都使用break语句;
3.在switch语句格式中不使用break语句。