逻辑运算符 按照运算符的优先顺序可以得出: a>b&&c>d等价于(a>b)&&(>d) !b=c|d<a等价于(b)==cd<a) ab>c&&x+y<b等价于(a+b)>c)&&(x+y)<b) 2)逻辑运算的值: ■逻辑运算的值也为“真”和“假”两种,用“1〃和“0〃来 表示。 ■反过来在判断一个量是为“真”还是为“假”时,以“0〃 的数值代表“假”,以非“0〃的数值代表“真
按照运算符的优先顺序可以得出: a>b && c>d 等价于 (a>b) && (c>d) !b==c||d<a 等价于 ((!b)==c)||(d<a) a+b>c && x+y<b 等价于 ((a+b)>c) && ((x+y)<b) 逻辑运算符 2)逻辑运算的值: 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来 表示。 反过来在判断一个量是为“真”还是为“假”时,以“0” 的数值代表“假”,以非“0”的数值代表“真”
3)逻辑运算的规则: 1)与运算&& 参与运算的两个量都为真时(非0),结果才为真(值为1, 否则为假(值为0) 例如:5>0&&4>2,由于5>0为真,4>2也为真,其结果 也为“真”,表达式的值为1。 (2)或运算‖ 参与运算的两个量只要有一个为真(非0),结果就为真(值 为1)。两个量都为假(值为0)时,结果为假(值为0) ■例如:5>05>8,结果也就为真(值为1)
(1)与运算&& 参与运算的两个量都为真时(非0),结果才为真(值为1), 否则为假(值为0)。 例如:5>0 && 4>2,由于5>0为真,4>2也为真,其结果 也为“真” ,表达式的值为1。 3)逻辑运算的规则: (2)或运算|| 参与运算的两个量只要有一个为真(非0),结果就为真(值 为1)。 两个量都为假(值为0)时,结果为假(值为0)。 例如:5>0 || 5>8, 结果也就为真(值为1)
3)逻辑运算的规则: (3)非运算! 参与运算量为真(非0)时,结果为假(值为0);参与运 算量为假(值为0)时,结果为真(值为1) 例如:!(5>0的结果为假,即为0 2.逻辑表达式 逻辑表达式的一般形式为: 表达式&&表达式表达式‖表达式!表达式 逻辑表达式的值:各种逻辑运算的最后值,以“1〃和“0 分别代表“真”和“假
(3)非运算! 参与运算量为真(非0)时,结果为假(值为0);参与运 算量为假(值为0)时,结果为真(值为1)。 例如:!(5>0)的结果为假,即为0。 2.逻辑表达式 逻辑表达式的一般形式为: 表达式 && 表达式 表达式 || 表达式 !表达式 逻辑表达式的值:各种逻辑运算的最后值,以“1”和“0” 分别代表“真”和“假” 。 3)逻辑运算的规则:
分析下段程序的输出结果 main char=k inti=1,j=2,k=3: 0,0 float x=3e+5, y=0.85; printf(ood, %odn",!x*y, ! !x) 1,0 printf("%d, %d\", x i&&j-3, k<j&&x<y); 0, 1 printf(%od, odin",i=5&&c&&lj=8),x+ylli+j+k);
main() { char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n", !x*!y, !!!x); printf("%d,%d\n", x||i&&j-3, i<j&&x<y); printf("%d,%d\n", i==5&&c&&(j=8), x+y||i+j+k); } 分析下段程序的输出结果 0,0 1,0 0,1
说明 在逻辑表达式的求解中,并不是所有的逻辑运算符 都执行,只有在必须执行下一个逻辑运算符才能求出表 达式的值时,才执行下一个运算符。 (1)表达式1&&表达式2&& a+b>0&&b++ (a=1b=2) 如果:表达式1的值是0,无论表达式2的值是什么, 整个表达式的值都为0,因此表达式2就不计算了。 (2)表达式1‖表达式2‖ a+b>0‖|b++ (a=1,b=2) 如果:表达式1的值是1,无论表达式2的值是什么, 整个表达式的值都为1,因此表达式2就不计算了
在逻辑表达式的求解中,并不是所有的逻辑运算符 都执行,只有在必须执行下一个逻辑运算符才能求出表 达式的值时,才执行下一个运算符。 (1) 表达式1 && 表达式2 && …… a+b>0 && b++ (a=1,b=-2) 如果:表达式1的值是0,无论表达式2的值是什么, 整个表达式的值都为0,因此表达式2就不计算了。 (2)表达式1 || 表达式2 || …… a+b>0 || b++ ( a=1,b=2 ) 如果:表达式1的值是1,无论表达式2的值是什么, 整个表达式的值都为1,因此表达式2就不计算了。 说 明: