一、关系表达式
关系运算是比较两个表达式的数值相互关系的运算。强调的是判断关系。 | |||
---|---|---|---|
运算符 | 含义 | 示例 | |
> | 大于 | 6>7 | 0 |
>= | 大于等于 | 4>=3 | 1 |
< | 小于 | 2<5 | 1 |
<= | 小于等于 | 1<=2 | 1 |
== | 等于 | 2==3 | 0 |
!= | 不等于 | 2!=4 | 1 |
关系表达式和楼及表达式的运算结果是一个逻辑值。 非0为真 0为假 |
1、关系运算:是对两个量进行“比较运算”。
2、关系运算符:< <= > >=(高)== !=(低)
3、结合性:自左向右(左结合)
4、和其他运算符进行混合运算时,其运算符之间的优先级为:
算数运算符、关系运算符、赋值运算符、逗号运算符(从高到低)
5、关系表达式:由关系运算符组成的表示,称为关系表达式。
关系运算符两边的运算对象可以试C语言中任意合法的表达式。
5>3 | 1 |
---|---|
3<=4 | 1 |
4+5<=8 | 0 |
9>5>4 | 0 |
2>=7<=8 | 1 |
5<x<2 | 1 |
5!=4 | 1 |
7=7 | 0 |
二、逻辑表达式
1、逻辑运算符:&&(逻辑与) ||(逻辑或) !(逻辑非)
2、结合性:自左向右(左结合)
3、它们的优先级由高到低为:!(逻辑非)、&&(逻辑与)、||(逻辑或)。
4、和其他运算符进行混合运算时,其运算符之前的优先级为:
!、算术运算符、关系运算符、&&、||、赋值运算符、逗号运算符(从高到低)
逻辑表达式:由逻辑运算符组成的表达式,称为逻辑表达式。
逻辑运算的运算对象可以试C语言中任意合法的表达式。
在C语言中表示x在0和10之间
x>=0&&x<=10 或 0<=x&&x<=10
5、0&&短路 非0||短路
例如:
设int a=1,b=2,c=3;
执行表达式(a>b)&&(c=1)后c的值为3
设int a=1,b=2,x=2,y=2;
执行表达式(x=a
三、if-else语句
1、if后面圆括号中的表达式,可以试任意合法的C语言表达式(如:逻辑表达式、关系表达式、算术表达式、赋值表达式等),也可以是任意类型的数据(如:整型、实型、字符型、指针型等)。
2、无论是否有else子句,if子句中如果只有一条语句,则此语句后的分号不能省略。
四、if-sele嵌套
#include<stdio.h>
void main(){
int g;
printf("Enter g:");
scanf("%d",&g);
printf("g=%d",g);
if(g>=90)
printf("A\n");
else if(g>=80)
printf("B\n");
else if(g>=70)
printf("C\n");
else if(g>=60)
printf("D\n");
else
printf("E\n");
}
五、switch语句
switch语句的形式如下:
switch(表达式)
{ case 常量表达式1:语句1;
case 常量表达式2:语句2;
:
:
case 常量表达式n:语句n;
default :语句n+1;
}
可以使用break终止循环 在关键字case和常量表达式之间一定要有空格
switch语句需要注意的几点
1、switch后的表达式只能是整型或者字符型。
2、case后常量表达式的值不能相同。
3、case后允许许许多条语句,不需要大括号。
4、如果不添加break语句,需要特质注意执行顺序。
5、case和default子句的先后顺序可以自行变动。
6、default子句可以省略。
switch和多重if的对比:
相同点
都是用来处理多分支条件的结构。
不同点
switch(杀鸡刀)等值条件判断——条件是有限个的时候
多重if(杀牛刀)判断某个连续区间的情况
六、条件语句
1、条件运算符
?: 三目运算符
2、条件表达式
表达式1?表达式2:表达式3
例如:20+30>=100?50:100 的结果为100 前真后假
3、优先级
赋值运算符、条件运算符、关系运算符、算术运算符(从低到高)
输出x的绝对值
printf(“abs(x)=%d\n”,x<0?(-1)*x:x);
输入一个字符,判别它是否为大写字母,
如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
#include<stdio.h>
int main()
{
char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
printf("%c\n",ch);
return 0;
}