第五章选择结构程序设计 5-1关系运算符与关系表达式 关系运算符: (大于) (大于等于)=(等于) =(不等于) 优先级序为:> 关系表达式是用关系运算符将两个表达式连接 起来的表达式。如a+b>x+ya=3 关系表达式的值是一个逻辑值(真或假),C语 规定1表示真,0表示假
第五章 选择结构程序设计 5-1 关系运算符与关系表达式 关系运算符: (大于) >=(大于等于) ==(等于) !=(不等于) 优先级序为 : >= == != 关系表达式是用关系运算符将两个表达式连接 起来的表达式。如 a+b>x+y a=3 关系表达式的值是一个逻辑值(真或假),C语 言规定 1表示真,0表示假
5-2逻辑运算符与逻辑表达式 逻辑运算符: &&(逻辑与)‖(逻辑或)(逻辑非) &&和‖是双目运算符,1是单目运算符 优先级序: !(最高)算术关系、&&和‖赋值(最低) 逻辑表达式是用逻辑运算符连接起来的式子。 如a&&bxyl|a 逻辑表达式的值是真(1)或假(0)
5-2 逻辑运算符与逻辑表达式 逻辑运算符: && (逻辑与) ||(逻辑或) !(逻辑非) && 和 || 是双目运算符, ! 是单目运算符 优先级序 : !(最高) 算术 关系 &&和 || 赋值 (最低) 逻辑表达式是用逻辑运算符连接起来的式子。 如 a&&b x+y||a !a 逻辑表达式的值是真(1)或假(0)
逻辑表达式应用举例 请思考 逻辑表达式中 判别某年是否闰年,要看 括号能省吗? 1、该年份(例1996)能被4整除,但不能破100整除 2、(该年份能被4整除),又能被400整除 而有以下逻舞表与即为00不能整除year,因 满足以上两条件 ((year4=0)&&(year%100=0))‖ea400=0) 该逻表达式的值为即闰年;为0则闰年 或400能整除 4能整除
逻辑表达式应用举例 判别某年是否闰年,要看 1、该年份(例1996)能被4整除,但不能被100整除 2、(该年份能被4整除),又能被400整除 满足以上两条件之一即为闰年。设某年year, 因 而有以下逻辑表达式: ( (year%4==0) && ( year%100!=0) ) || (year%400==0) 该逻辑表达式的值为1即闰年;为0则非闰年。 请思考 逻辑表达式中 括号能省吗? 4能整除 100不能整除 与 或 400能整除
5-3语句 5-3-1if语句有三种形式: 1.if(表达式)语句 2.if(表达式)语句1else语句2 3.if(表达式1)语句1 else if(表达式2)语句2 else if(表达式m)语句m else语句n
5-3 if 语句 5-3-1 if 语句有三种形式: 1. if (表达式) 语句 2. if (表达式) 语句1 else 语句2 3. if (表达式1) 语句1 else if (表达式2) 语句2 : else if (表达式m) 语句m else 语句n
例:输入3个数,要求按由大到小的顺序输出 Include maino float a, b, c, t; scanf("%f, %f, %f, &a, &b, &c) if(a<b)t=a; a=b; b=t; 1 if(a<c)[t=a; a=C; c=t; 1 if(b<c)t=b; b=C; c=t: 1 printf("%8.2千%8.2f%8.2f"a,b,C)
例:输入 3 个数,要求按由大到小的顺序输出 #include main() { float a,b,c,t; scanf("%f,%f,%f",&a,&b,&c); if(a<b) {t=a; a=b; b=t; } if(a<c) {t=a; a=c; c=t; } if(b<c) {t=b; b=c; c=t; } printf("%8.2f%8.2f%8.2f",a,b,c); }
5-3-2if语句的嵌套 if语句中又包含语句 注意if与else的配对使用 例某幼儿园只接收2-6岁的小孩,其中2-3 岁编入小班;4-5岁编入中班;6岁编入大班。 编程实现:对输入的任一年龄,输岀小孩应编 入什么班或告知“不收
5-3-2 if 语句的嵌套 if语句中又包含 if语句 注意:if 与else的配对使用。 例 某幼儿园只接收 2-6 岁的小孩,其中 2-3 岁编入小班;4-5 岁编入中班;6 岁编入大班。 编程实现:对输入的任一年龄,输出小孩应编 入什么班或告知 “不收
maino fint age printf(" Please input the age scanf("%d", &age) if (age=2) f(age>=28&age≤=3) printf("∈ nroll into a small class.Ⅶn"); else if (age=4&&age<=5) printf( enroll into a middle class n") else printf Enroll into a big class. n) else printf("Dont accept. n")
main() { int age; printf("Please input the age:"); scanf("%d",&age); if(age=2) if(age>=2&&age=4&&age<=5) printf("Enroll into a middle class.\n"); else printf("Enroll into a big class.\n"); else printf("Don't accept.\n"); }
5-3-3条件运算符 三目运算符 般形式表达式1?表达式2:表达式3 先求解表达式1,若为非0值,则求解表达式2,否贝 求解表达式3。 如max=(a>b)?a:b 条件表达式的值赋值给变量max
5-3-3 条件运算符 • 三目运算符 • 一般形式 表达式1 ? 表达式2 :表达式3 先求解表达式1,若为非0值,则求解表达式2,否则 求解表达式3。 如 max = (a>b) ? a : b 条件表达式的值赋值给变量max
条件运算符应用举例 maint {inta=33,b-44 int it max, max=(a>b)?a+50:b+16 printf(7%odn”,max);
条件运算符应用举例 main( ) { int a=33, b=44 ; int max; max=(a>b) ? a+50 : b+16 ; printf(”%d\n”,max) ; }
5-4 switch语句 分支选择语句 般形式 break表示 执行语句后转出 switch(表达式) case常量表达式1:语句1; break case常量表达式2:语句2; break default表示1~n case常量表达式都不满足 break default 语句n+1 当 switch表达式的值与某一个case后的表达式的值 相等时,就执行此case后的语句,然后跳出
5-4 switch语句 • 分支选择语句 • 一般形式 switch (表达式) { case 常量表达式1 : 语句1; break; case 常量表达式2 : 语句2; break; : case 常量表达式n : 语句n; break; default : 语句n+1 } 当switch表达式的值与某一个case后的表达式的值 相等时,就执行此case后的语句,然后跳出。 break表示 执行语句后转出 default表示1~n 表达式都不满足