《第5章选择结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5章选择结构ppt课件.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章选择结构ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望5.1if条件分支条件分支结构构5.1.1简单简单if分支分支结构构if语句的简单形式为:语句的简单形式为:if(表达式表达式)语句语句例例5.1输入两个数分入两个数分别赋给变量量a和和b,如果,如果a的的值大于大于b的的值,则交交换两个两个变量量值。main()floata,b,t;printf(ninputtworealnumber:);scanf(%f,%f,&a,&b);if(ab)/
2、*判判断断ab的的值,如如果果为真,真,则执行下面的行下面的语句句*/t=a;a=b;b=t;printf(na=%5.2f,b=%5.2fn,a,b);5.1.2ifelse两路分支两路分支结构构ifelse两路分支两路分支结构构的的if语句一般写为语句一般写为:if(表达式表达式)语句语句1;else语句语句2;5.1.3ifelseifelse多路分支多路分支结构构ifelseifelse多路分支多路分支结构构的的ifif语句一般写为语句一般写为:if(表达式表达式1)1)语句语句1;elseif(表达式表达式2)语句语句2;elseif(表达式表达式3)语句语句3;elseif(表达式
3、表达式n)语句语句n;else语句语句n+1;ifelseifelse语句执行过程语句执行过程5.2条件运算符与条件表达式条件运算符与条件表达式 条条件件运运算算符符是是一一个个三三目目运运算算符符,即即有有三三个个参参与与运运算算的的量量。由由条条件件运运算算符符组组成成的的表表达达式式称称为为条件表达式。其一般形式为:条件表达式。其一般形式为:表达式表达式1?1?表达式表达式2 2:表达式:表达式3 35.3switch-case开关开关语句句switch-case语句又称多分支选择语句,它是另一种语句又称多分支选择语句,它是另一种形式的多分支判断。形式的多分支判断。使用使用switch-
4、case语句可以句可以实现多多分支分支选择结构,其一般形式构,其一般形式为:switch(表达式表达式)case常量表达式常量表达式1:语句语句1;case常量表达式常量表达式2:语句句2;case常量表达式常量表达式n:语句句n;default:语句句n+1;图图5.9switch语句句执行行过程程例例5.6根据输入的数字来输出对应的星期几的英文根据输入的数字来输出对应的星期几的英文单词,如输入单词,如输入“1”,则输出,则输出“Monday”。根根据据题题意意可可使使用用一一个个多多分分支支的的程程序序结结构构。可可以画出其流程图以画出其流程图5.10如下:如下:5.4选择结构的嵌套构的嵌
5、套选择结构可以嵌套使用,如构可以嵌套使用,如ifelseifelse结构构实际上就是上就是if语句的嵌套形式。当需要句的嵌套形式。当需要处理理问题的判断条件更的判断条件更为复复杂时,可以用各种,可以用各种结构形式构形式的的if语句中相互句中相互镶嵌,可以是一个,也可以是嵌,可以是一个,也可以是多个多个if语句,形成相句,形成相应的的层层嵌套,但注意嵌嵌套,但注意嵌套关系不能交叉。套关系不能交叉。5.5选择结构程序构程序应用用实例例程序一:使用程序一:使用if形式的形式的if语句来句来实现选择结构。构。main()floatx,y;printf(inputx=);scanf(%f,&x);if(
6、x0)y=x+1;printf(x=%f,y=%fn,x,y);程序二:使用程序二:使用ifelseifelse形式的形式的if语句来句来实现选择结构,算法构,算法N-S图如如图5.15所示。所示。源程序如下:源程序如下:main()floatx,y;printf(inputx=);scanf(%f,&x);if(x0)y=x-1;elseif(x=0)y=0;elsey=x+1;printf(x=%f,y=%fn,x,y);程序三:使用嵌套的程序三:使用嵌套的if语句来句来实现选择结构,构,算法如算法如图5.16所示。所示。源程序如下:源程序如下:main()floatx,y;printf(
7、inputx=);scanf(%f,&x);if(x=0)if(x=0)y=0;elsey=x+1;elsey=x-1;printf(x=%f,y=%fn,x,y);例例5.11试编程求一元二次方程程求一元二次方程ax2+bx+c=0的解。其算法的解。其算法N-S图如如图5.18所示。所示。源程序如下:源程序如下:#include math.hmain()float a,b,c,disc,x1,x2,realpart,imagpart;printf(Enter a,b,c:n);scanf(%f,%f,%f,&a,&b,&c);printf(the equation);if(fabs(a)=1
8、e-6&fabs(b)=1e-6)printf(is not a legal equationn);else if(fabs(a)1e-6)printf(has one root:%8.4fn,-c/b);elsedisc=b*b-4*a*c;if(fabs(disc)1e-6)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(has distinct real roots:%8.4f and%8.4fn,x1,x2);else realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(h
9、as complex roots:n);printf(%8.4f+%8.4fin,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,imagpart);5.6本章小节本章小节 条件分支结构是程序设计流程控制的重要条件分支结构是程序设计流程控制的重要组成部分,其中简单的组成部分,其中简单的if分支分支结构可以构可以实现一一路流程的分支;路流程的分支;ifelse两路分支两路分支结构可以构可以实现二二选一分支;一分支;ifelseifelse多路分支多路分支结构可以构可以实现从多种情况条件中从多种情况条件中选择一路一路执行程序流程;行程序流程;条件运算符可以更加条件运算符可以更加简洁地地实现条件分支运算;条件分支运算;而而switch-case开关开关语句能句能够方便清晰地方便清晰地实现多多选一的程序流程一的程序流程执行。各种行。各种选择结构相互之构相互之间,根据根据逻辑上的需要可以分上的需要可以分层嵌套,但是要注意嵌套,但是要注意层层匹配,不能交叉。匹配,不能交叉。
限制150内