C语言程序设计教程(第二版) 徐新华 第04章 选择结构程序设计新.ppt
文本预览下载声明
4.1 关系运算及其表达式 关系运算——将两个数据进行比较,判定是否符合给定的关系。 例如,“a b”中的“”,表示一个大于关系: ●如果a=5、b=3,则大于关系成立; ●如果a=2、b=3,则大于关系不成立。 4.1.1 关系运算符及其优先次序 1.关系运算符 (小于), =(小于等于), (大于), =(大于等于) ==(等于), !=(不等于) 2.与其它种类运算符的优先关系 算术运算符 → 关系运算符 → 赋值运算符 思考:在混合运算时,如何增强程序可读性(明确运算的优先关系)? 4.1.2 关系表达式 1.概念——用关系运算符,将两个表达式连接起来的式子。 例如:a b,a = b ,a + b c - d 2.关系表达式的值——逻辑真 / 逻辑假 ●如果关系成立,则表达式的值为逻辑真; ●如果关系不成立,则表达式的值为逻辑假。 C语言没有逻辑型数据,用整数1表示“逻辑真”,用整数0表示“逻辑假”。 假设num1=3,num2=4,num3=5,则: (1) num1 num2 := 0 (2) (num1 num2) != num3: = 1 (3) num1 num2 num3 := 1 思考:任意改变num1或num2的值,会影响整个表达式的值吗?为什么? x∈(1,100):1x100 ? [返回] 4.2 逻辑运算及其表达式 关系表达式只能描述单一条件。如果需要同时描述多个条件时,就要借助于逻辑表达式。 4.2.1 逻辑运算及其优先次序 1.逻辑运算符 :逻辑与(相当于“同时”) || :逻辑或(相当于“或者”) ! :逻辑非(相当于“否定”) 例如:(x=0) (x10) ,(x1) || (x5) ,! (x= =0), (year%4= =0) (year%100!=0) | | (year%400= =0) 2. 运算规则 (1):当且仅当两个运算对象的值都为“逻辑真”时,结果为“逻辑真”,否则为“逻辑假”。 运算口诀:同时为真才为真,否则为假。 (2) || :当且仅当两个运算对象的值都为“逻辑假”时,结果为“逻辑假”,否则为“逻辑真”。 运算口诀:同时为假才为假,否则为真。 (3) ! :当运算对象的值为“逻辑真”时,结果为“逻辑假”;当运算对象的值为“逻辑假”时,结果为“逻辑真”。 运算口诀:取反。 4.2.2 逻辑表达式 1. 概念——用逻辑运算符,将若干表达式连接起来的式子。 例如,逻辑表达式(year%4= =0) (year%100!=0) || (year%400= =0),判断year是否闰年。 2.逻辑表达式的值——逻辑真 /逻辑假 3.非逻辑值运算对象的真/假判定──0和非0 逻辑运算的对象要求是逻辑值,而C语言中没有逻辑型数据。 C语言约定: 0,判定为“逻辑假” 非逻辑值运算对象= 非0,判定为“逻辑真” 假设num=12,则: (1)!num: =0 (2) (num = 1) (num = 31) :=1 (3) num || (num 31) := 1。 4.说明 (1)运算对象的数据类型:除整型外,也可以是实型、字符型等其它任何类型数据。 (2)子表达式计算:只有在必须计算下一个子表达式才能求解时,才计算;否则,不再计算。 换句话说: ①对于逻辑与运算,如果第1个对象被判定为“逻辑假”,系统不再计算第2个对象(因为无论真假,都不影响整个表达式的结果)。 ②对于逻辑或运算,如果第1个对象被判定为“逻辑真”,系统不再计算第2个对象。 思考:假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,求解表达式“(x = n1 n2) (y = n3 n4)”后,x、y的值=? 答案: x=0,y=1 分析: (1) n1 n2: = 0 (2) x = n1 n2 :x = 0 (3) (x = n1 n2) := 0 (4) :(y = n3 n4) 不再计算,y保持原值,即y=1。 [返回] 4.3* if语句 [案例4.1] 输入3个整数num1、num2、num3,求最大值。 算法设计要点: (1) 任取一个数预置为max(最大值); (2) 用其余的数num依次与max比较:如果num max,则max ← num 。 比较完所有的数后,max中的数就是最大值。 #include “stdio.h” #include “conio.h” void m
显示全部