制作:方斌 2.逻辑值的真假判定—0和非0 C语言用整数“1”表示“逻辑真”、用“O”表示“逻辑假” 但在判断一个数据的“真”或“假”时,却以O和非O为根据 如果为O,则判定为“逻辑假”;如果为非O,则判定为“逻辑 真 例如,假设num=12,则 !num的值=O,num>=1&&num<=31的值 num|num>31的值=1。 又例、①若a=4则!a=0(假)②2若a=4,b=5则 a&&b=1(真) ③若a=4,b=5则a||b=1(真)④若a=4,b=5则!a|b=1(真) ⑤4&80|12=1(真)
制 作:方 斌 ⚫ C语言用整数“1”表示“逻辑真”、用“0”表示“逻辑假”。 但在判断一个数据的“真”或“假”时,却以0和非0为根据: 如果为0,则判定为“逻辑假”;如果为非0,则判定为“逻辑 真”。 例如,假设num=12,则: !num的值=0 ,num>=1 && num<=31的值=1 , num || num>31的值=1。 又例、① 若a=4 则 !a=0(假) ②若 a=4,b=5 则 a&&b=1(真) ③ 若a=4,b=5 则 a||b=1(真) ④ 若a=4,b=5 则 !a||b=1(真) ⑤ 4&&0||2 =1(真) 2.逻辑值的真假判定──0和非0
制作:方斌 思考:a==0可以写为:!a a!=0可以写为:a 3.说明 (1)逻辑运算符两侧的操作数,除可以是O和非O的整 数外,也可以是其它任何类型的数据,如实型、字符型等。 (2)在计算逻辑表达式时,只有在必须执行下一个表达 式才能求解时,才求解该表达式(即并不是所有的表达式都 被求解)。换句话说: 1)对于逻辑与运算,如果第一个操作数被判定为 假”,系统不再判定或求解第二操作数。如a&&b&&C只 有a为真时,才判别b的值;只有a和b均为真时,才判别c的 值。只要a为假,就不再判别b和c的值,直接求得表达式的 值为假
制 作:方 斌 思考:a==0 可以写为:!a a!=0 可以写为:a 3.说明 (1)逻辑运算符两侧的操作数,除可以是0和非0的整 数外,也可以是其它任何类型的数据,如实型、字符型等。 (2)在计算逻辑表达式时,只有在必须执行下一个表达 式才能求解时,才求解该表达式(即并不是所有的表达式都 被求解)。换句话说: 1)对于逻辑与运算,如果第一个操作数被判定为 “假” ,系统不再判定或求解第二操作数。如 a&&b&&c 只 有a为真时,才判别b的值;只有a和b均为真时,才判别c的 值。只要a为假,就不再判别b和c的值,直接求得表达式的 值为假
制作:方斌 2)对于逻辑或运算,如果第一个操作数被判定为 “真”,系统不再判定或求解第二操作数。如 ab||c只要a为真,就不再判别b和c的值,直接求 得表达式的值为真。只有a为假时,才判别b的值;只 有a和b均为假时,才判别c的值。 例如,假设冂1、n2、n3、n4、X、y的值分别为1、2、 1 则求解表达式 “(X=n1>n2)&&(y=n3>n4)"后,X的值变为O, 而y的值不变,仍等于1!
制 作:方 斌 2)对于逻辑或运算,如果第一个操作数被判定为 “ 真 ” , 系统不再判定或求解第二操作数 。 如 a||b||c 只要a为真,就不再判别b和c的值,直接求 得表达式的值为真。只有a为假时,才判别b的值;只 有a和b均为假时,才判别c的值。 例如,假设n1、n2、n3、n4、x、y的值分别为1、2、 3 、 4 、 1 、 1 , 则求解表达式 “(x=n1>n2)&&(y=n3>n4)”后,x的值变为0, 而y的值不变,仍等于1!
制作:方斌 4.2if语句和用语句构成的选择结构 i语句:判别条件是否满足(表达式的值为真时满足),来决 定程序的流程(执行两路操作之一)。 4.2.1i语句的三种形式 1、if(表达式)语句 例如 表达式 假(0) if (>y printf ("%d"x); 真(非0) 话句
制 作:方 斌 4.2 if语句和用if语句构成的选择结构 if语句:判别条件是否满足(表达式的值为真时满足),来决 定程序的流程(执行两路操作之一)。 4.2.1 if语句的三种形式 1、if (表达式) 语句 例如: if (x>y) printf("%d",x);
制作:方斌 2、if(表达式)语句1ese语句2 真(非0) 表达式 假(0) 语句1 语句2 例如 if (x>y) printf("%d"X) else printf("%/od"yi
制 作:方 斌 2、if (表达式) 语句1 else 语句2 例如: if (x>y) printf("%d",x); else printf("%d",y);