52、逻辑运算符和表达式 522逻辑表达式 ●优先级 !(2) 高 !:从右向左 结合方向: &&(11) &&:从左向右 2)|低 :从左向右 例a<=x&&x<=b ∥(a<=x)&&(x<=b) a>b&&x> (a>b)&&(x>y) a==bx==y (a=b)‖(x=y) alla>b (∵)(a>b)
6 ! (2) && (11) || (12) 高 低 例 a<=x && x<=b a>b&&x>y a==b||x==y !a||a>b ⚫优先级: ⚫结合方向: ! :从右向左 && :从左向右 || :从左向右 // (a<=x) && (x<=b) //(a>b)&&(x>y) //(a==b)||(x==y) //(!a)||(a>b) 5.2、逻辑运算符和表达式 5.2.2 逻辑表达式
5.2、逻辑运算符和表达式 522逻辑表达式 0优先级 !(2) 高 从右向左 ●结合方向 &&(11 &&:从左向右 ‖(12) 低 :从左向右 例a=4;b=5; 值为0 a&&b 值为1 值为1 lab 值为1 48&0|2 值为1 5>3882|840(53)&&2|(8<(4()值为1 值为1 c&&d3
7 ! (2) && (11) || (12) 高 低 ⚫优先级: ⚫结合方向: ! :从右向左 && :从左向右 || :从左向右 例 a=4;b=5; • !a • a&&b • a||b • !a||b • 4&&0||2 • 5>3&&2||8<4-!0 • ‘c’&&‘d’ 值为1 值为0 值为1 值为1 值为1 值为1 //(5>3)&&2||(8<(4-(!0))) 值为1 5.2、逻辑运算符和表达式 5.2.2逻辑表达式
5.2、逻辑运算符和表达式 522逻辑表达式 (2) !:从右向左 ●优先级: 高 &&(11) &&:从左向右 结合方向: (12)/低 l:从左向右 短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被 执行,只是在必须执行下一个逻辑运算符才能求出表达式 的解时,才执行该运算符 例a&&b&&c∥只在a为真时,才判别b的值; 只在a、b都为真时,才判别c的值 例l|bl )在a为假时,才判别b的值; 只在a、b都为假时,才判别c的值 例a=1;b=2;c=3;d=4;m=1;n=1 (m=a>b)&&(n=c>d) ∥结果m=0,n=1
8 ! (2) && (11) || (12) 高 低 ⚫优先级: ⚫结合方向: ! :从右向左 && :从左向右 || :从左向右 短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被 执行,只是在必须执行下一个逻辑运算符才能求出表达式 的解时,才执行该运算符 例 a&&b&&c //只在a为真时,才判别b的值; 只在a、b都为真时,才判别 c的值 例 a||b||c //只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值 例 a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d) //结果m=0,n=1 5.2、逻辑运算符和表达式 5.2.2 逻辑表达式
5.2if语旬 5.3.1if语旬的三种形式 expr 形式一 非0 格式:if( expression) statement statement 执行过程: 例:i(x>y) printf(%d”,x) ●形式二 ◆格式:if( expression) 非0 expr statement1 eise statement l statement2 statement2 ◆执行过程 例:if(x>y)max=x; ese max-y
9 ▪ 5.2 if语句 5.3.1 if语句的三种形式 ▪ 形式一: • 格式:if (expression) statement • 执行过程: expr statement 非0 =0 expr statement1 statement2 非0 =0 ⚫形式二: ◆格式:if (expression) statement1 else statement2 ◆执行过程: 例:if (x>y) max=x; else max=y; 例:if (x>y) printf(“%d”,x);