§52逻辑运算 521逻辑运算符及其优先次序 &是逻辑“与”双目运算符 丨逻辑“或”双目运算符 !非 高 !逻“非”单目运算符算术运算符 关系运算符 aa&&b a b!a && 1 0非00 非000 0111 赋值运算符 非0非01 优先级关系低
§5.2 逻辑运算 5.2.1 逻辑运算符及其优先次序 && 逻辑“与”双目运算符 || 逻辑“或”双目运算符 ! 逻辑“非”单目运算符 a b a&&b a || b !a 0 0 0 0 1 0 非0 0 1 1 非0 0 0 1 0 非0 非0 1 1 0 !非 高 算术运算符 关系运算符 && || 赋值运算符 优先级关系 低
&&与运算的求值顺序 a&&b若表达式a的值为0则不论表达式b为何 值,整个表达式的值都为0。因此,在计算时 先求解表达式a,若a为非0值,再求解表达式b, 根据b的值来决定整个表达式的值;若a为0, 则不再求解表达式b 占与运算的求值顺序 a|b若表达式a的值为非0值则不论表达式b为 何值,整个表达式的值都为1。因此,在计算 时先求解表达式a,若a为0时,再求解表达式b, 根据b的值来决定整个表达式的值;若a为非0 值,则不再求解表达式b
&&与运算的求值顺序 a&&b 若表达式a的值为0则不论表达式b为何 值,整个表达式的值都为0。因此,在计算时 先求解表达式a,若a为非0值,再求解表达式b, 根据b的值来决定整个表达式的值;若a为0, 则不再求解表达式b。 ||与运算的求值顺序 a||b 若表达式a的值为非0值则不论表达式b为 何值,整个表达式的值都为1。因此,在计算 时先求解表达式a,若a为0时,再求解表达式b, 根据b的值来决定整个表达式的值;若a为非0 值,则不再求解表达式b
例:设a=3,b=4,x=0y=0,求值: 1、a<b&&x>y 值为0!非 2、a==b| 值为1算术运算符 3、!a||a>b 值为0关系运算符 && 4、!a&&b‖x>y&&c值为0 5、inta=1,b=1,e=2,d=3,m=5,n=2,k;赋值运算符 优先级关系低 k(m=a+b)&&(n=c+d k为0,m为0,n为2
例:设a=3,b=4,x=0,y=0,求值: 1、a < b && x > y 2、a = = b | | x = = y 3、! a | | a > b 4、! a && b || x > y && c 5、int a=-1,b=1,c=2,d=3,m=5,n=2,k; k=(m=a+b)&&(n=c+d) !非 高 算术运算符 关系运算符 && || 赋值运算符 优先级关系 低 值为0 值为1 值为0 值为0 k为0 ,m为0, n为2
例:判别某一年year是闰年,闰年的条件符合 下面二者之一: (1)能被4整除,但不能被100整除 (2)能被4整除,又能被400整除 可以用一个逻辑表达式表示: (year%4==0&&year%100!=0)|year%400==0 上述表达式为真,则year是闰年;否则为非闰年
例:判别某一年year是闰年,闰年的条件符合 下面二者之一: (1)能被4整除,但不能被100整除; (2)能被4整除,又能被400整除。 可以用一个逻辑表达式表示: (year % 4= =0 &&year %100 !=0)||year%400= =0 上述表达式为真,则year是闰年;否则为非闰年
§53i语句 f语句:判别条件是否满足来决定程序的流程 (执行两路操作之一)。 i语句的三种形式 1、近f(表达式)语句 例如:if(x>y) printf(("%d"rx) <表达式 语句
§5.3 if语句 if语句:判别条件是否满足,来决定程序的流程 (执行两路操作之一)。 if语句的三种形式 1、if (表达式) 语句 例如:if (x>y) printf("%d",x); 表达式 语句 假 真