物联网学习教程——逻辑运算符和逻辑表达式

248 阅读2分钟

  说明:

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

  关系运算符的优先级高于赋值运算符

  2.关系表达式

  用关系运算符将两个表达式(可以是算术表达式或

  关系表达式,逻辑表达式,赋值表达式,字符表达式)

  接起来的式子,称关系表达式

  例:a>b,a+b>b+c,(a=3)>(b=5),’a’<‘b’,(a>b)>(b<c)

  关系表达式的值是一个逻辑值(C语言中没有专用的逻辑值,1代表真,0代表假

  ,即“真”或“假”。)

  例:关系表达式”a>b”的值为“真”,表达式的值为1。

  1.逻辑运算符及其优先次序

  (1)&&(逻辑与)相当于其他语言中的AND

  (2)||(逻辑或)相当于其他语言中的OR

  (3)!(逻辑非)相当于其他语言中的NOT

  例:a&&b若a,b为真,则a&&b为真。

  a||b若a,b之一为真,则a||b为真。

  !a若a为真,则!a为假。

  优先次序:

  !(非)->&&()->||()

  逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算

  术运算符

  2.逻辑表达式

  用逻辑运算符将关系表达式或逻辑量连接起来的式子就

  是逻辑表达式。

  逻辑表达式的值应该是一个逻辑量“真”或“假”。

  例:设a=4,b=5:

  !a的值为0 a&&b的值为1

  a||b的值为1!a||b的值为1

  4&&0||2的值为1

  

  在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。

  (1)a&&b&&c只有a为真时,才需要判断b的值,只有a和b都为真时,

  才需要判断c的值。

  (2)a||b||c只要a为真,就不必判断b和c的值,只有a为假,才

  判断b。a和b都为假才判断c

  例:(m=a>b)&&(n=c>d)

  当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值

  为0,因此m=0,而“n=c>d”不被执行,因此n的值不是0而

  仍保持原值1。

  用逻辑表达式来表示闰年的条件

  能被4整除,但不能被100整除。

  能被4整除,又能被400整除。

  答案:(year%4==0&&year%100!=0)||year%400==0

  值为真(1)是闰年,否则为非闰年。