关系和逻辑运算符及表达式

关系运算符和关系运算符表达式

通俗地说,关系运算符就是比较运算,即将两个数据进行比较,判定两个数是否符合给定的关系。

关系运算符

<(小于),>(大于),<=,>=,==,!=(不等于)

六种运算符都是目运算符。关系操作数可以是数值型数据也可以是字符型数据

关系成立:关系运算的值为1(表示逻辑真)

关系不成立:关系运算的值为0(表示逻辑假)

例如:5>3               值为1

           5<=3             值为0

           5!=3              值为1

注意:浮点数是用近似值表示的。“==”用于两个浮点数的判断是,由于存储误差,会得出错误的结果,要特别注意。

例如:

1.0/3.0*3.0==1.0

由于“1.0/3.0”得到的值用有限位保存,是近似值,所以“1.0/3.0!=1.0”.

判断两个浮点数是否相等,一般采用如下形式的运算

fabs(1-1.0/3.0*3.0)<1e-5           把两个数相减,看绝对值是否是一个很小的数

(1e-5)里的1是一,不是L

关系表达式

1、关系表达式的组成

用关系表达式将两个表达式连接起来,进行运算的式子。

被连接起来的式子可以是:算术表达式,关系表达式,逻辑表达式

a+b>b+c            比较两个算术表达式的值

a<=2*b               比较变量的值和算术表达式的值

'a'<'b'                  比较两个字符的ASCII码

(它们都是可以的。关系表达式只能描述单一条件,如“x>=0”).

2、关系运算符的优先级

①<, <=, >, >=为同一级,==和 !=为同一级,其优先级前者高于后者

②关系运算符的优先级低于算术运算符的优先级

a+b>b+c                     等价于(a+b)>(b+c)

2+a==b-a                   等价于(2+a)==(b-a)

3、 关系运算符的结合律

表达式中出现优先级别为同一级的采用结合律

例如:

int a=2,b=3,c=1;

a>b<c                先计算a>b,结果是0,再计算0<c,关系表达式的值为1

6>3<2                先计算6>3,结果是1,再计算1<2,关系表达式的值为1

注意,上面的关系表达式与数学的不等式完全不同

逻辑运算符与逻辑运算表达式

进行逻辑判断时,数据的值为非0,则认作逻辑真,用整型1表示;

                             数据的值为0,则认作逻辑假,用整型0表示

逻辑运算符

&&(逻辑与),||(逻辑或),!(逻辑非)

操作数可以是字符型,整型,浮点型

1、!

是单目运算符。若操作数为0,逻辑运算结果为1;当操作数为非0,逻辑运算结果为0.

2、&&

是双目运算符,当两个参加逻辑运算的操作数均为非0时,结果才为真

int a=5,b=3;

a&&b                      结果为1

(a<b)&&(a>0)         结果为0,因为a<b的值为0

3、||

双目运算符,当参加运算的两个操作数,只要有一个值为非0,结果就为1,否则为逻辑假

int a=5,b=3;

a||b                        结果为1

(a<b)||(a>0)           结果为1

逻辑表达式

1、构成

用逻辑运算符将表达式连接起来

!(a>b)

(a>b)&&(b>c)

(a>b)&&(b>c)||(b==0)

2、逻辑运算符的优先级

①优先级顺序:!、&&、||

②!高于算术运算符,&&、||低于算术运算符

如:

!a&&b>5                计算顺序为(!a)&&(b>5)   

a==b||a<c              (a==b)||(a<c)

3、逻辑运算符的结合律

采用结合律

4、C语言中逻辑表达式的特性

①在多个&&运算符相连的表达式中,计算从左到右,若遇到运算符左边的操作数为0,则停止运算,因为此时已可以断定结果为假

a=0,b=1

c=a&&(b=3)

结果为:c的值为0,b的值为1

由于a为0,逻辑表达式运算停止,b=3没有被运算,赋值符右边表达式的值为0

②在多个||运算相连的表达式中,计算从左到右,若遇到运算符左边的操作数为1,则停止运算,因为此时已经可以断定逻辑表达式结果为真

a=1,b=1,c=0;

d=a||b||(c=b+3)

运算结果:d的值为1,c的值为0

由于a为1,逻辑表达式运算停止,c=b+3没有被运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值