文档详情

2第四章条件运算符与条件表达式switch语句选择结构程序设计.ppt

发布:2015-09-04约5.91千字共16页下载文档
文本预览下载声明
第8讲 条件运算符与条件表达式 switch语句、选择结构程序设计 4.3 条件运算符和条件表达式 若“表达式2”与“表达式3”的数据类型不一致,则系统自动地将其中的一个精度低的表达式转化为精度较高的表达式的数据类型。如:x0?5:1.5的结果为实型数5.0或1.5。 说明:1.条件运算符的优先级高于赋值运算符,但低于逻辑运算、关系运算和算术运算。 2.条件运算符具有自右向左的结合性。 如:max=a(bc? b: c)?a: b c? b : c 相当于:max=a(bc? b: c )?a:(bc? b : c) 4.4 switch语句 例4.5 例4.6 用switch语句改写例4.3 4.4.2 switch语句体中的break语句 4.5 选择结构程序举例 第四章 作业 * * 条件运算符: ? : 条件表达式的一般形式为:表达式1?表达式2:表达式3 条件表达式的求解过程:先求“表达式1”的值,当“表达式1”的值为非零时,以“表达式2”的值作为整个条件表达式的值;当“表达式1”的值为零时,以“表达式3”的值作为整个条件表达式的值。 使用switch语句实现多分支选择结构,可以使程序的结构显得更加清晰。 1. switch语句的一般形式与执行过程 switch语句形式如下: switch (表达式) {case 常量表达式1: [语句1] case 常量表达式2: [语句2] : case 常量表达式n: [语句n] [default:语句n+1] } 表达式只能是整型、字符型或枚举型 case和常量表达式之间一定要有空格 多条语句可以不必用{ }括起来 default标号也可以放在其它位置 方括号中的内容可以省略 执行过程: 先计算表达式的值,然后寻找与该值吻合的case标号,并执行该标号开始的所有语句,直到switch语句体结束。如果没有与该值相等的标号,则从default标号后的语句开始执行,直到switch语句体结束。 main() {int y , m, d, dd=0; printf(Enter yyyy/mm/dd:); scanf(%d/%d/%d, y, m, d); printf(%d/%d/%d, y, m, d); switch (m-1) {case 11: dd=dd+30;/*11月的天数*/ case 10: dd=dd+31; /*10月的天数*/ …… case 2: dd=dd+28; /*2月的天数*/ case 1: dd=dd+31; /*1月的天数*/ case 0: dd=dd+d; /*当月已过的天数*/ } if((m2)(y%4==0y%100!=0||y%400==0)) dd=dd+1; /*闰年的2月有29天*/ printf( %d\n,dd); } 编写程序,输入能代表一个日期的三个整数,计算该日是该年的第几天。 case 9: dd=dd+30; case 8: dd=dd+31; case 7: dd=dd+31; case 6: dd=dd+30; case 5: dd=dd+31; case 4: dd=dd+30; case 3: dd=dd+31; 程序运行情况如下: Enter yyyy/mm/dd:2003/2/15CR 2003/2/15 46 Enter yyyy/mm/dd:2003/12/31CR 2003/12/31 365 main() {int g ; printf(Enter a mark: ); scanf(%d,g); printf(g=%d: ,g); switch (g/10) {case 10: case 9: printf(A\n); case 8: printf(B\n); case 7: printf(C\n); case 6: printf(D\n); default: printf(E\n); } } 程序运行情况如下: Enter a mark:78CR g=78: C D E 程序在输出了与78分相关的
显示全部
相似文档