您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第五章 选择程序结构设计(2)
第五章选择程序结构设计楼宇0511复习实例:输入两个实数,按数值由小到大的次序输出这两个数main(){floata,b,temp;/*temp-临时变量*/printf(“Pleaseinput2numbers:\n”);scanf(“%f,%f”,&a,&b);if(ba){temp=a;a=b;b=temp;}/*交换a,b*/printf(“%f,%f”a,b);}复习输入三个数,求最大值。5.3switch语句既然有了if语句可以实现选择程序的设计,但为什么我们还要学习switch语句?或者说if语句有什么不足之处?多分支可以使用嵌套的if语句处理,但如果分支较多,嵌套的if语句层数多,程序冗长,降低可读性。5.3switch语句main(){floata,b,temp;/*temp-临时变量*/printf(“Pleaseinput2numbers:\n”);scanf(“%f,%f”,&a,&b);if(ba){temp=a;a=b;b=temp;}/*交换a,b*/printf(“%f,%f”a,b);}if语句只对一个值进行检验,而switch语句根据不同值产生不同分支。5.3switch语句switch语句的一般形式:switch(表达式){case值1:语句1;[break;]case值2:语句2;[break;]………case值n:语句n;[break;][default:语句n+1;]}表达式的数据类型只能为整型或字符型,语句可以是任何有效的语句或复合语句。5.3switch语句switch语句的执行过程:首先计算switch后表达式的值在switch语句中寻找与该表达式的值匹配的case值。如果找到,则执行该case后的各语句,直至遇到一个break语句为止;如果找不到匹配的case值,则执行switch的默认语句(default),直到switch语句体结束。如果找不到匹配的case值且不存在默认语句(default),则跳过switch语句体,执行下一语句。5.3switch语句注意:各个常量表达式的值必须互不相同,否则出现矛盾。各个case,default出现的顺序不影响执行结果。执行完一个case后面的语句后,流程控制转移到下一个case中的语句继续执行。此时,“case值”只是起到语句标号的作用,并不在此处进行条件判断。在执行一个分支后,可以使用break语句使流程跳出switch结构,即终止switch语句的执行(最后一个分支可以不用break语句)。case后面如果有多条语句,不必用{}括起来。多个case可以共用一组执行语句。(注意break使用的位置)5.3switch语句main(){intscore,m;printf(“\nPleaseinputascore(0~100):\n”);scanf(“%d”,&score);m=score/10;switch(m){case9:case10:printf(“\nThegradeisA.”);break;case8:printf(“\nThegradeisB.”);break;case7:printf(“\nThegradeisC.”);break;case6:printf(“\nThegradeisD.”);break;default:printf(“\nThegradeisE”);}}Inputascore(0~100):85↙grade=B5.4程序举例例:任以输入一x,求分段函数的值。(x1)(1≤x10)(x≥10)11312xxxy5.4程序举例main(){floatx,y;printf(“\nPleaseinputx:”);scanf(“%f”,&x);if(x1)y=x;elseif(x=10)y=3*x-11;elsey=x*x-1;printf(“y=%f”,y);}5.4程序举例例2:编程序求一元二次方程ax2+bx+c=0的实数根。main(){floata,b,c,delta,x1,x2;printf(“\nPleaseinputa,b,c:\n”);scanf(“%f,%f,%f”,&a,&b,&c);delta=b*b-4*a*c;if(delta0)printf(“Thereisnorealfact!”);elseif(delta==0){x1=-b/(2*a);printf(“x1=%f”,x1);}else{x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a);printf(“x1=%f,x2=%f”,x1,x2);}}5.4程序举例例3:输入1~7之间的任意数字,程序将按照用户的输入数据输出对应的星期值。如用户输入为3,则程序输出Wednesday。如果输入1~7以外的数字,则提示输入错误。5.4程序举例main(){intweek;printf(“\nPleaseinputaninteger(1~7):\n”);scanf(“%d”,&score);switch(week){case1:printf(“Mondey\n”);break;case2:printf(“Tuesday\n”);break;case3:printf(“Wednesday\n”);break;case4:printf(“Thursday\n”);break;case5:printf(“Friday\n”);break;case6:printf(“Saterday\n”);break;case7:printf(“Sunday\n”);break;default:printf(“Theinputiswrong!\n”);}}5.4程序举例小结:switch语句是多分支语句,根据switch后表达式的不同的值执行不同的分支。选择结构程序设计主要是涉及到if语句和switch语句的程序设计。
本文标题:第五章 选择程序结构设计(2)
链接地址:https://www.777doc.com/doc-3167160 .html