关系运算符和关系表达式
><>=<===!=
大🐟小🐟大于等于小于等于等于不等于
表达式1关系运算符表达式2
[功能]
计算表达式1的值,计算表达式2的值
值:如果关系运算符成立,整个表达式的值为真(1)
如果关系运算符不成立,整个表达式的值为假(0)
练习:从终端输入一个整数,如果这个整数大于0,则输出这个数
#include
int main()
{
int x = 0;
scanf("%d",&x);
if(x > 0)
{
printf("%d\n",x);
}
return 0;
}
👋
三目运算符
?:
表达式?表达式1:表达式2
功能:计算表达式的值,如果表达式的值为真,则计算表达式1,如果表达式的值为假,则计算表达式2.
值:如果表达式值为真,那么整个三目表达式的值为表达式1的值,否则(如果表达式的值为假,那么整个三目表达式为表达式2的值。)
#include
int main()
{
int num = 0;
//num = 5 > 4 ? 5 : 3;
num = (5 > 3) ? (6 - 4) : (4 - 6);
printf("%d\n",num);
return 0;
}
逻辑运算符和相关表达式
逻辑与&&读作“且”
格式:表达式1 && 表达式2
值:如果,表达式1的值为真(1),表达式2的值为真(1),那么整个表达式的值为真(1)
如果,表达式1的值为真(1),表达式2的值为假(0),那么整个表达式的值为假(0)
如果,表达式1的值为假(0),表达式2的值为真(1),那么整个表达式的值为假(0)
如果,表达式1的值为假(0),表达式2的值为假(0),那么整个表达式的值为假(0)
[有一个为假,就为假]
&&:首先计算表达式1的值,如果表达式1的值为真,则继续计算表达式2的值 ,如果表达式1的值为假,那么真个表达式的值为假,不计算表达式2的值。
扩展:表达式1&&表达式2&&表达式3&&……&&表达式N
只看到第一个假那里
#include
int main()
{
int a = 1;
int b = 0;
if(a && ++b)
{
printf("------\n");
}
printf("a = %d\n",a);
printf("b = %d\n",b);
return 0;
}
逻辑或|| 读作 “或”
格式:表达式1||表达式2
值:如果,表达式1的值为假(0),表达式2的值为假(0),那么整个表达式的值为假
如果,表达式1的值为假(0),表达式2的值为真(1),那么整个表达式的值为真
如果,表达式1的值为真(0),表达式2的值为假(0),那么真个表达式的值为真
如果,表达式1的值为真(1),表达式2的值为真(1),那么整个表达式的值为真
[有一个为真,就为真]
|| :首先计算表达式1的值,如果表达式1的值为假,则继续计算表达式2的值,否则(如果表达式1的值为真,就知道整个表达式的值为真,不计算表达式2的值了)
扩展:表达式1||表达式2 || 表达式3||……||表达式N
只看到第一个真那里
#include
int main()
{
int a = 0;
int b = 0;
if(a || b)
{
printf("------\n");
}
printf("a = %d\n",a);
printf("b = %d\n",b);
return 0;
}
练习:1、输入你的身高,身高是否再0~3M的范围内
#include
int main()
{
intlen = 0;
scanf(“%d”,&len);
if(len>0 && len <=300)
{
}
return 0;
}
逻辑非!读作“非”
格式: !表达式
值:如果表达式的值为真,则整个表达式的值为假,如果表达式的值为假,则整个表达式的值为真
[颠倒黑白]
#include
int main()
{
int a = 0;
if(!a)
{
printf("-----\n");
}
return 0;
}
复合运算符
+=-=*=/=%=
格式:变量符合运算符表达式
int a = 1;
a += 3-- --》a = a+3
a(4)
其他同理
逗号运算符
格式:表达式1,表达式2,表达式3,........表达式N
功能:从左至右依次计算各个表达式的值
值:整个表达式为最右侧表达式的值
#include
int main()
{
int a = 1;
int b = 2;
int c = 3;
int ret = 0;
ret =( a++,b++,c++);
printf("ret = %d\n",ret);
return 0;
}
下载优先级表:
练习:从终端输入两个数,比较大小,输出最大值
#include
int main()
{
int num1 = 0;
int num2 = 0;
scanf(“%d%d”,&num1,&num2);
printf("最大的是:%d\n",num1 > num2 ? num1:num2);
return 0;
}
网友评论