例如,下面的表达式都是逻辑表达式 (x>=0)&&(x<10),(x<1)‖(x>5),!(x==0), (year%4=0&&(year%100=0)year%400=0) 2)运算规则 )&&:当且仅当两个运算量的值都为“真”时, 运算结果为“真”,否则为“假” 2)‖:当且仅当两个运算量的值都为“假”时,运 算结果为“假”,否则为“真”。 :当运算量的值为“真”时,运算结果」 “假”;当运算量的值为“假”时,运算结果为“真 例如,假定x=5,则(x>=0)&&(x<10)的值为“真 (x<-1)‖(x>5)的值为“假”。 下=顶
返回本章首页 下一页 上一页 例如,下面的表达式都是逻辑表达式: (x>=0) && (x<10) ,(x<1) || (x>5) ,! (x= =0), (year%4==0)&&(year%100!=0)||(year%400==0) (2)运算规则 1)&&:当且仅当两个运算量的值都为“真”时, 运算结果为“真” ,否则为“假” 。 2) || :当且仅当两个运算量的值都为“假”时,运 算结果为“假” ,否则为“真” 。 3) ! :当运算量的值为“真”时,运算结果为 “假”;当运算量的值为“假”时,运算结果为“真” 。 例如,假定x=5,则(x>=0) && (x<10)的值为“真” , (x<-1) || (x>5)的值为“假”
2.逻辑运算符的运算优先级 (1)逻辑非的优先级最髙,逻辑与次之,逻辑或最低, !(非)→&&(与)→‖(或) 2)与其它种类运算符的优先关系 !→算术运算→关系运算→&&→‖→赋值运算 2逻辑表达式 1.逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将1个或多个表达 式连接起来,进行逻辑运算的式子。在C语言中,用逻辑表 达式表示多个条件的组合。 例如,(year%4=0)&&(year%100=0) I(year'%4000 是一个判断一个年份是否是国年的逻辑表达 下=顶
返回本章首页 下一页 上一页 2.逻辑运算符的运算优先级 (1)逻辑非的优先级最高,逻辑与次之,逻辑或最低, 即: !(非) → &&(与) → ||(或) (2)与其它种类运算符的优先关系 !→ 算术运算 → 关系运算 → &&→ || → 赋值运算 2 逻辑表达式 1.逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将1个或多个表达 式连接起来,进行逻辑运算的式子。在C语言中,用逻辑表 达式表示多个条件的组合。 例如,(year%4==0)&&(year%100!=0)||(year%400==0)就 是一个判断一个年份是否是闰年的逻辑表达式
逻辑表达式的值也是一个逻辑值(非“真”即 假”) 2.逻辑量的真假判定—0和非0 C语言用整数“1”表示“逻辑真”、用“0”表示 逻辑假”。但在判断一个数据的“真”或“假”时, 却以0和非0为根据:如果为0,则判定为“逻辑假” 如果为非0,则判定为“逻辑真” 例如,假设num=12,则:!mum的值=0,num>=1 &&num<=31的值=1, num num>31的值=1。 3.说明 上 (1)逻辑运算符两侧的操作数,除可以是0和非0 的整数外,也可以是其它任何类型的数据,如实型 符型等 下=顶
返回本章首页 下一页 上一页 逻辑表达式的值也是一个逻辑值(非“真”即 “假”)。 2.逻辑量的真假判定──0和非0 C语言用整数“1”表示“逻辑真” 、用“0”表示 “逻辑假” 。但在判断一个数据的“真”或“假”时, 却以0和非0为根据:如果为0,则判定为“逻辑假” ; 如果为非0,则判定为“逻辑真” 。 例如,假设num=12,则: !num的值=0 ,num>=1 && num<=31的值=1 ,num || num>31的值=1。 3.说明 (1)逻辑运算符两侧的操作数,除可以是0和非0 的整数外,也可以是其它任何类型的数据,如实型、字 符型等
(2)在计算逻辑表达式时,只有在必须执行下一个表 达式才能求解时,才求解该表达式(即并不是所有的表达 式都被求解)。换句话说: )对于逻辑与运算,如果第一个操作数被判定为 “假”,系统不再判定或求解第二操作数 2)对于逻辑或运算,如果第一个操作数被判定为 “真”,系统不再判定或求解第二操作数。 例如,假设n1、n、n3、n4、x、y的值分别为1、2、3 4、1、1,则求解表达式“(X=n1>n2)&&(=n3>n4)”后,x 的值变为0,而y的值不变,仍等于1! 上 下=顶
返回本章首页 下一页 上一页 (2)在计算逻辑表达式时,只有在必须执行下一个表 达式才能求解时,才求解该表达式(即并不是所有的表达 式都被求解)。换句话说: 1)对于逻辑与运算,如果第一个操作数被判定为 “假” ,系统不再判定或求解第二操作数。 2)对于逻辑或运算,如果第一个操作数被判定为 “真” ,系统不再判定或求解第二操作数。 例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、 4、1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x 的值变为0,而y的值不变,仍等于1!
程序运行情况如下: Please input three numbers: 112218K The three numbers are: 1 1.22.18 max=22 本案例中的第1个i语句,可优化为如下不带else子句 的形式: maxmum f(num2>max) max-num2 这种优化形式的基本思想是:首先取一个数预置为 max(最大值),然后再用max依次与其余的数逐个比较 如果发现有比mx大的,就用它给max重新赋值,比较完( 所有的数后,max中的数就是最大值。这种方法,对从3 个或3个以上的数中找最大值的处理,非常有效。请读者 仔细体会 下=顶
返回本章首页 下一页 上一页 程序运行情况如下: Please input three numbers:11,22,18↙ The three numbers are:11,22,18 max=22 本案例中的第1个if语句,可优化为如下不带else子句 的形式: max=num1; if(num2>max) max=num2; 这种优化形式的基本思想是:首先取一个数预置为 max(最大值),然后再用max依次与其余的数逐个比较, 如果发现有比max大的,就用它给max重新赋值,比较完 所有的数后,max中的数就是最大值。这种方法,对从3 个或3个以上的数中找最大值的处理,非常有效。请读者 仔细体会