高级程序设计语言 吴凡 TEL:83202682 E-mail:cdwf@tom.com
高级程序设计语言 吴 凡 TEL: 83202682 E-mail: cdwf@tom.com
第五章选择结构程序设计 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 第五章 选择结构程序设计
引例 sin( x) ●计算函数值y x≠0 x=0 include stdio. h" include "math. h 输入x main o x=0? float x, yi Y printf ("input x: \ n") scanf(of &x)i SIX/X if(x!=0.0) sin(x)/xi 输出y else printf("y f", y)i 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 引例 ⚫ 计算函数值: = = 1 0 0 sin( ) x x x x y 输入x X=0? Y N y = 1 y = six/x 输出y #include "stdio.h" #include "math.h" main() { float x, y; printf("input x:\n"); scanf("%f", &x); if (x != 0.0) y = sin(x)/x; else y = 1; printf("y = %f", y); }
关系运算符 关系运算实际上是“比较运算” =(优先级相同)↑高 (优先级相同) 低 ●优先级: ●算术运算符高 ●关系运算符 赋值运算符低 结合方向:从左向右 例 c>a+b>c>(a+b) a==b>c+a==(b>c) a=b==c→a=(b==c) 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 关系运算符 ⚫ 关系运算实际上是“比较运算” ⚫ >= (优先级相同) ⚫ == != (优先级相同) ⚫ 优先级: ⚫ 算术运算符 ⚫ 关系运算符 ⚫ 赋值运算符 ⚫ 结合方向:从左向右 ⚫ 例: ⚫ c > a + b → c > (a+b) ⚫ a == b > c → a == (b > c) ⚫ a = b == c → a = (b == c) 低 高 低 高
关系表达式 ●关系表达式:用关系运算符将两个表达式(算术表达 式,字符表达 关系表达式,逻辑表达式,赋值表 达式)连接起来的式子 例 X+y>5 ●"a A 字符量比较:根据ASC值 (4*2)>(4=2) ●关系表达式的值:“真”(1)或“假”(0) 例:a=3,b=2,C=1则 ●a>b的值为真,表达式的值为1 a>b==c的值为真,表达式的值为1 ●b+c<a的值为假,表达式的值为0 b+c<=a的值为真,表达式的值为1 例:a=3,b=2,C=1,如果d=a!=b==c,则d=1 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 关系表达式 ⚫ 关系表达式:用关系运算符将两个表达式(算术表达 式,字符表达式,关系表达式,逻辑表达式,赋值表 达式)连接起来的式子 ⚫ 例: ⚫ x + y > 5 ⚫ 'a' == 'A' 字符量比较:根据ASCII值 ⚫ (4 * 2) > (4 == 2) ⚫ 关系表达式的值:“真” (1) 或 “假” (0) ⚫ 例:a = 3,b = 2,c=1 则: ⚫ a > b 的值为真,表达式的值为1 ⚫ a > b == c 的值为真,表达式的值为1 ⚫ b + c < a 的值为假,表达式的值为0 ⚫ b + c <= a的值为真,表达式的值为1 ⚫ 例:a = 3, b = 2, c = 1,如果 d = a != b == c,则d = 1
逻辑运算符 ●逻辑运算符: ●&&逻辑与 例:a&&b,若a,b都为真,则逻辑表达式值为真 °‖l逻辑或 ●例:ab,若a,b都为假,则逻辑表达式值为假, (换言之:a,b中有一个为真,则逻辑表达式值为 真) ●!逻辑非 例:!a,若a为真,则逻辑表达式值为假;反之依然, ●真值表(P89) 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 逻辑运算符 ⚫ 逻辑运算符: ⚫ && 逻辑与 ⚫ 例: a && b,若a,b都为真,则逻辑表达式值为真。 ⚫ || 逻辑或 ⚫ 例: a || b,若a,b都为假,则逻辑表达式值为假, (换言之: a,b中有一个为真,则逻辑表达式值为 真)。 ⚫ ! 逻辑非 ⚫ 例:!a,若a为真,则逻辑表达式值为假;反之依然。 ⚫ 真值表(P89)
逻辑运算符 各种运算符的优先级 !(非) 高 ●优先级: !↑高 算术运算符 关系运算符 低 88 结合顺序: 从右向左 &&和‖:从左向右 赋值运算符|低 ●例:!ab&&x>y&&c →(!a)‖!b&&(x>y)&&c 32 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 逻辑运算符 ⚫ 优先级: ⚫ ! ⚫ && ⚫ || ⚫ 结合顺序: ⚫ !:从右向左 ⚫ &&和||:从左向右 ⚫ 例:!a || b && x > y && c →(!a) || b &&(x > y) && c 低 高 低 !(非) 高 算术运算符 关系运算符 && || 赋值运算符 各种运算符的优先级 1 5 3 2 4
逻辑表达式 逻辑表达式:用逻辑运算符将关系表达式或逻辑 量连接起来的式子 ●逻辑量:用来进行判断的变量或者常量 ●C编译系统认为: 值等于零:假 ●非零值:真 例:若a=4,在a&&1中,a就是逻辑量,代表真 ●逻辑表达式的值:真为1,假为0 例:若a=4,则: a 0 a&85 ●a!0 a&&0 0 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 逻辑表达式 ⚫ 逻辑表达式:用逻辑运算符将关系表达式或逻辑 量连接起来的式子 ⚫ 逻辑量:用来进行判断的变量或者常量 ⚫ C编译系统认为: ⚫ 值等于零:假 ⚫ 非零值:真 ⚫ 例:若a = 4 ,在a && 1中,a就是逻辑量,代表真 ⚫ 逻辑表达式的值:真为1,假为0 ⚫ 例:若a = 4,则: ⚫ !a 0 ⚫ a && -5 1 ⚫ a || 0 1 ⚫ a && 0 0
逻辑表达式 例 3,b=2,c=1则 a>b&&b>c+(a>b)&&(b>c) a!=b&&b!=c→(a!=b)&&(b!=c) !a‖lc>a(a)‖(c>a) 例:5>3‖2&&!82‖1X<1)&&X!=0 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 逻辑表达式 ⚫ 例:a = 3,b = 2,c=1 则: ⚫ a > b && b > c → (a > b) && (b > c) ⚫ a != b && b !=c → (a != b) && (b !=c) ⚫ !a || c > a → (!a) || (c > a) ⚫ 例:5 > 3 || 2 && !8 2 || x < 1) && x != 0 x x x f x ( 1)( 2) ( ) − − =
f语句 if语句的三种形式: 条件执行 ●格式:近(判断条件p) 真 假 语句A; 空 例 if (a>0) printf ("a=gd is positive f (x y)t 例 Y Y temp 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 if 语句 ⚫ if语句的三种形式: 1. 条件执行 ⚫ 格式:if (判断条件p) 语句A; ⚫ 例: ⚫ 例 A 空 p 真 假 if (a > 0) printf("a=%d is positive\n", a); ... if (x > y){ temp = x; x = y; y = temp; }