关系运算符和表达式
比较两个量的运算符称为关系运算符
关系运算符及其优先级
C语言包括“<”、“>”、“>=”、”<=”、”!=”、”==”
关系运算符均为双目运算符,其结合性为左结合。关系运算符的优先级低于算数运算符,高于赋值运算符
其中<、<=、>、>=的优先级相同,!=、==的优先级相同
关系表达式
一般形式为:表达式 关系运算符 表达式;关系表达式允许出现嵌套的情况
关系表达式的值为“真”、“假”用“1”、“0”表示
逻辑运算符和表达式
逻辑运算符及其优先级
C语言的逻辑运算符包括:“||”、“&&”、“!”与或非
其中与运算符、或运算符具有左结合性、非运算符是右结合性
其优先级为:!非运算 > &&与运算 = ||或运算
并且,非运算符高于算数运算;与运算、或运算在关系运算和赋值运算符中间
逻辑表达式
一般形式为:表达式 逻辑运算符 表达式,允许嵌套的情形
逻辑表达式的也为“真”、“假”,分别用1,0表示
- &&与运算 当两边表达式都为真,结果为真;反之为假
- ||或运算 当两边表达式有一方为真,则结果为真;反之为假
- !非运算 当表达式为假时其结果为真;反之为假
if语句
if语句的三种形式
- if:当满足if的表达式时则执行其后的语句,否则不执行
if(表达式)
{语句1; 语句2;}
- if-else:当满足if的表达式时则执行其后的语句,否则执行else后的语句
if(表达式)
{语句1; 语句2;}
else
{语句3;语句4;}
- if-else if-if:当满足if的表达式则执行性其后语句;若不满足则判断else if后的表达式是否为真,为真则执行if else后的语句;否则执行else后面的语句
if(表达式)
{语句1; 语句2;}
else if(表达式)
{语句3;语句4;}
else
{语句5;语句6;}
在if语句中注意以下问题:
- 在if关键词后面的均为表达式,其表达式通常为逻辑表达式、关系表达式;也可以为赋值表达式、变量、常量等
- if语句中,条件判断表达式必须用括号括起来,执行语句之后必须加分号
- 在if后的执行语句,如果为复用语句,需要将多个语句用“{}”括起来,以做好区分
if语句的嵌套
C语言规定,else总是与它前面最近的if匹配。
条件运算符和条件表达式
条件运算符是“?:”,它是一个三目运算符
一般形式为: 表达式1?表达式2:表达式3;
求值规则为:如果表达式1为真,则表达式2的值作为条件表达式的值,否则以表达式2的值作为条件表达式的值
条件表达式常常用于赋值语句中
switch语句
C语言的一种用于多分支选择的switch语句,一般形式为
switch(表达式){
case常量表达式1: 语句1;
case常量表达式2: 语句2;
…
case常量表达式n: 语句n;
default : 语句n+1;
}
其语意为:计算表达式的值。并逐个与其后面的常量表达式比较,当与某个常量表达式的值相等时,即执行其后语句。如果与所有的case均不相同,则执行default语句
使用switch的时候注意:
- 在case后面的常量表达式的值不能相同,否则会出错
- case后如果有多个语句,可以不用{}括起来
- case和default的先后顺序可以随意变动
- default子句可以省略