您好,欢迎访问三七文档
switch语句重点:1.switch语句格式2.switch语句的执行过程3.switch语句中break的使用4.switch语句应用中的注意事项难点:1.switch语句格式2.switch语句中break的使用switchA.Function:Itisamulti_waydecisionthattestswhetheranexpressionmatchesoneofanumberofconstantintegervalues,andbranchesaccordingly.B.Constructionswitch(expression){caseconst-expr:statementscaseconst-expr:statementsdefault:statements}switchC.Howtoexecuteit1)Theexpressionisvalued2)MatchthecaseIfacaseissatisfied,executedthestatementsaccordingly.anditwillfallthrougheverystatementunlessthereisabreakorcontinueorreturn,etc.elseifthedefaultisthereexecutedthestatements;elsetheswitchisendswitchD.Note1)Thetypeoftheexpressionisonlyintegerandcharacter,ifnotitwillbetransformedintothosetype.2)Everylabelmustbeaconstantorconstantexpression3)Defaultisalternative4)Ifthestatementbreakisexist,thepositionofthecaseanditsstatementscanbeexchanged,butthestatementbreakisalternative.5)Withoutabreakorcontinueorreturn,etc.isthere,itwouldfallthrougheverystatement.switch语句应用A)switch(w){case1.0:printf(*\n);case2.0:printf(**\n);}B)switch(b){case1:printf(*\n);default:printf(\n);case1+2:printf(**\n);}C)switch(a);{case1printf(*\n);case2printf(**\n);}D)switch(a+b);{case1:printf(*\n);case2:printf(**\n);default:printf(\n);}switch语句应用1.给定两个整数,根据用户所输入的选择做相应的运算main(){intx,y,z;charop;scanf(%d%d%c,&x,&y,&op);switch(op){case'+':z=x+y;case'-':z=x-y;case'*':z=x*y;case‘/’:z=x/y;}printf(“%d%c%d=%d”,x,op,y,z);}break;break;break;break;main(){inty,m,d,d1;scanf(%d%d%d,&y,&m,&d);switch(m){case1:d1=31;break;case3:d1=31;break;case5:d1=31;break;case7:d1=31;break;case8:d1=31;break;case10:d1=31;break;case12:d1=31;break;case4:d1=30;break;case6:d1=30;break;2.给定当前日期的年月日计算出其所在月有几天case9:d1=30;break;case11:d1=30;break;case2:if(y%4==0&&y%100!=0||y%400==0)d1=29;elsed1=28;}printf(%dd1);}main(){inty,m,d,d1;scanf(%d%d%d,&y,&m,&d);switch(m){case1:case3:case5:case7:case8:case10:case12:d1=31;case4:case6:case9:case11:d1=30;2.给定当前日期的年月日计算出其所在月有几天case2:if(y%4==0&&y%100!=0||y%400==0)d1=29;elsed1=28;}printf(%dd1);}break;break;break;switch语句应用下列程序段的输出结果是()intn='c';switch(n++){default:printf(error);break;case'a':case'A':case'b':case'B':printf(good);break;case'c':case'C':printf(pass);case'd':case'D':printf(warn);}3.给定当前日期的年月日求其为本年的第几天main(){inty,m,d,d1;scanf(%d%d%d,&y,&m,&d);switch(m-1){case12:d1+=31;case11:d1+=30;case10:d1+=31;case9:d1+=30;case8:d1+=31;case7:d1+=31;case6:d1+=30;case5:d1+=31;case4:d1+=30;case3:d1+=31;case2:if(y%4==0&&y%100!=0||y%400==0)d1+=2elsed1+=28;case1:d1+=31;}printf(%d,d1);}d1=d;switch语句应用switch语句可以嵌套使用,即在每个case对应的语句组中可以嵌套使用其他的switch语句,但嵌套使用时,若有break语句时,break只能跳出一层。若外层没有break语句则继续执行,直到break,return,continue或到语句结束。以下程序运行后的输出结果是()main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf(%d%d\n,a,b);}switch语句应用课后作业:给定销售额,按以下规则计算出其所应得的奖金值。销售额在20万以内时,奖金为10%提成,40万以内前20万同上,其余按7%提成,60万以内则前40万同上,其余按5%提成,超过60万则前面同上,其余按3%提成
本文标题:SWITCH
链接地址:https://www.777doc.com/doc-5815032 .html