控制流顺序结构选择结构.ppt
《控制流顺序结构选择结构.ppt》由会员分享,可在线阅读,更多相关《控制流顺序结构选择结构.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章顺序和选择结构程序设计顺序和选择结构程序设计n n4.1 结构化程序设计结构化程序设计 n n4.2 语句与分程序语句与分程序n n4.3 顺序结构程序设计顺序结构程序设计 n n4.4 选择结构程序设计n n4.5 switch语句语句n n4.6 程序举例程序举例 4.1 结构化程序设计结构化程序设计(1)顺序结构顺序结构顺顺序序结结构构就就是是一一组组逐逐条条执执行行的的可可执执行行语句。按照书写顺序,自上而下的执行。语句。按照书写顺序,自上而下的执行。(2)选择结构(分支结构)选择结构(分支结构)选选择择结结构构是是一一种种先先对对给给定定条条件件进进行行判判断断,并根据判断
2、的结果执行相应命令的结构。并根据判断的结果执行相应命令的结构。(3)循环结构循环结构循循环环结结构构是是指指多多次次重重复复执执行行同同一一组组命命令的结构。令的结构。具具有有循循环环结结构构的的程程序序一一般般必必须须指指定定循循环环的的终终止止条条件件,以以便便对对程程序序的的循循环环进进行行有有效效的的控控制制,以以免免进进入入无无限限循循环环(或或称称死死循循环)的状态。环)的状态。C程序的执行部分由执行语句构成。程序的执行部分由执行语句构成。执行语句的种类执行语句的种类表达式语句表达式语句函数调用语句函数调用语句控制流语句控制流语句复合语句(或称分程序)复合语句(或称分程序)空语句空
3、语句4.2语句与复合语句语句与复合语句 最最简简单单的的可可执执行行语语句句。只只要要在在表表达达式后面加上分号就可以了。式后面加上分号就可以了。例如:例如:+i;x=y;尽量避免写无意义的表达式。尽量避免写无意义的表达式。表达式语句表达式语句函数调用语句函数调用语句由函数名、实际参数以及分号构成。由函数名、实际参数以及分号构成。例如:例如:printf(welcome);printf是是函函数数名名,“welcome”是是实实际际参参数数。函函数数名名既既可可以以是是C语语言言提提供供的的库库函函数数名名,也可以是我们自己定义的函数名。也可以是我们自己定义的函数名。复合语句和分程序结构复合语
4、句和分程序结构复复合合语语句句是是用用和和把把数数据据说说明明语语句句和和若若干干个个有有序的执行语句组合在一起而构成。序的执行语句组合在一起而构成。其一般格式为:其一般格式为:数据说明数据说明;语句语句;复复合合语语句句在在语语法法上上相相当当于于一一个个简简单单语语句句,在在程程序序中中可以作为一个独立语句来看待,因此又称为分程序。可以作为一个独立语句来看待,因此又称为分程序。控制流语句控制流语句控控制制流流语语句句是是用用于于控控制制程程序序流流程程的的语语句句,控控制流语句一般指那些改变了顺序结构的语句。制流语句一般指那些改变了顺序结构的语句。C语言的控制语句语言的控制语句分支语句分支
5、语句(if和和switch)循环语句循环语句(while,do-while,for)转向语句转向语句(break,goto,continue,return)l熟练掌握控制语句是学会程序设计的基础。熟练掌握控制语句是学会程序设计的基础。空语句空语句C语语言言中中有有一一个个很很特特殊殊的的语语句句,即即空空语语句句。空空语语句句,顾顾名名思思义义,就就是是什什么么也也不不存存在在的的语语句句,只只有有一一个分号:个分号:;尽尽管管空空语语句句不不会会有有任任何何命命令令执执行行,但但仍仍然然是是一一个有用的语句。常用于循环语句中,使循环体为空。个有用的语句。常用于循环语句中,使循环体为空。例如:
6、例如:for(sum=0,i=0;i=0y=-xx10)表示如果表示如果x大于大于10;(3)表达式表达式可以使用逻辑运算符连接关系表达式,可以使用逻辑运算符连接关系表达式,例如:例如:if(ab)&(b=c);还可以是一般的表达式,;还可以是一般的表达式,(4)表达式表达式甚至是一个常量或一个变量,甚至是一个常量或一个变量,例例如如:if(x)和和if(1)只只要要x或或1的的值值为为非非0,表表达达式式即即为为真。真。例例4.2使使用用if形形式式编编写写程程序序:输输入入x,求求出出并并输输出出x的绝对值。的绝对值。#include stdio.h /*-abs(x)-*/void ma
7、in()int x;scanf(%d,&x);if(xbab将将两两个个数数的的位位置调换;否则,保持不变。置调换;否则,保持不变。#include stdio.h /*-swap a and b-*/void main()int a,b,temp;scanf(%d%d,&a,&b);if(ab)temp=a;a=b;b=temp;printf(%d,%dn,a,b);例例4.4请请判判断断下下面面程程序序的的执执行行结结果果,并并解解释释该该程序的功能。程序的功能。#include stdio.h void main()int a=10,b=20,x;x=a;if(a=A&cb)x=a;pr
8、intf(%dn,a);else x=b;printf(%dn,b);4.4.4if语句的嵌套语句的嵌套例如我们要解决这样一个问题:输入一个整例如我们要解决这样一个问题:输入一个整数,根据输入值,输出数的范围属于大于数,根据输入值,输出数的范围属于大于0、小、小于于0还是等于还是等于0。x的范围实际上是三种情况,我们先用的范围实际上是三种情况,我们先用ifelse解决这个问题:解决这个问题:if(x=0)printf(x=0);elseif(x0)printf(x0);elseif的语法:的语法:if(表达式表达式1)语句语句1;elseif(表达式表达式2)语句语句2;elseif(表达式表
9、达式3)语句语句3;elseif(表达式表达式n)语句语句n;else语句语句n+1;一条语句;一条语句;功功能能:按按表表达达式式的的顺顺序序进进行行判判断断,最最早早值值为为真真的的表表达达式式将将引引起起执执行行相相应应语语句句,并并且且不不再再继继续续判判断断其其它它条条件件,跳跳转转到到下下一一条条语语句句执执行行。若若全全部部表表达达式式为假,则执行语句为假,则执行语句n+1。if(x0)printf(x=0);elseif(x0)printf(x0);例例4.8根根据据输输入入的的百百分分制制按按五五分分制制的的成成绩绩输输出出。百分制与五分制之间的关系见下表。百分制与五分制之间
10、的关系见下表。百分制百分制五分制五分制90100580894607930592#includestdio.hvoidmain()intscore;chargrade;printf(“pleaseinputscore:”);/*请输入分数请输入分数*/scanf(%d,&score);if(score89)grade=5;elseif(score79)grade=4;elseif(score59)grade=3;elsegrade=2;printf(gradeis%c,grade);修改例修改例4.8,排除不可能的分数。,排除不可能的分数。#include stdio.hvoid main()i
11、nt score;char grade;printf(please input score:);scanf(%d,&score);if(score=0&score89)grade=5;else if(score79)grade=4;else if(score59)grade=3;else grade=2;printf(grade is%c,grade);else printf(data error007n);if(表达式表达式1)if(表达式(表达式2)语句语句1;else语句语句2;if(表表达达式式1)&(表表达达式式2)语句语句1;if(!表达式表达式1)语句语句2;if(表达式表达式1
12、)if(表达式表达式2)语句语句1;else语句语句2;if(表达式表达式1)&(表达式表达式2)语句语句1;if(表达式表达式1)&(!表达式表达式2)语句语句2;if(表达式表达式1)if(表达式表达式2)语句语句1;else语句语句2else到底与哪个到底与哪个if结合呢?因为这时有两种可能,结合呢?因为这时有两种可能,这就产生了所谓的二义性。这就产生了所谓的二义性。C语言规定:语言规定:else与离与离它最近的它最近的if结合。结合。例例4.9输输入入一一个个数数,若若该该数数为为正正整整数数并并且且是是偶偶数数,打打印印“是正的偶数是正的偶数”,否则打印,否则打印“非正整数非正整数”
13、。#include“stdio.h”voidmain()intx;printf(Pleaseinputoneinteger:);scanf(%d,&x);if(x0)if(x%2=0)printf(positiveandevenn);elseprintf(notpositiven);输输入入一一个个数数,若若该该数数为为正正整整数数并并且且是是偶偶数数,打打印印“是是正的偶数正的偶数”,否则打印,否则打印“正整数并且是奇数正整数并且是奇数”。#include“stdio.h”voidmain()intx;printf(Pleaseinputoneinteger:);scanf(%d,&x);i
14、f(x0)if(x%2=0)printf(positiveandevenn);elseprintf(positiveandoddn);4.5 switch语句语句switchswitch语句属于多路分支结构。语句属于多路分支结构。语句属于多路分支结构。语句属于多路分支结构。switchswitch的常用形式:的常用形式:的常用形式:的常用形式:switch(switch(条件表达式条件表达式条件表达式条件表达式)casecase常量表达式常量表达式常量表达式常量表达式1 1:语句:语句:语句:语句1 1;break;break;casecase常量表达式常量表达式常量表达式常量表达式2 2:语
15、句:语句:语句:语句2 2;break;break;casecase常量表达式常量表达式常量表达式常量表达式3 3:语句:语句:语句:语句3 3;break;break;casecase常量表达式常量表达式常量表达式常量表达式n n:语句:语句:语句:语句n n;break;break;defaultdefault语句语句语句语句n+1;break;n+1;break;功功功功能能能能:首首首首先先先先计计计计算算算算条条条条件件件件表表表表达达达达式式式式的的的的值值值值,然然然然后后后后找找找找到到到到与与与与其其其其相相相相等等等等的的的的常常常常量量量量表表表表达达达达式式式式的的的的
16、casecase分分分分支支支支去去去去执执执执行行行行语语语语句句句句,然然然然后后后后退退退退出出出出switchswitch语语语语句句句句,若若若若没没没没有有有有与与与与条条条条件件件件表表表表达达达达式式式式相相相相等等等等的的的的常常常常量量量量表表表表达达达达式式式式,则则则则执执执执行行行行defaultdefault语语语语句句句句后后后后面面面面的的的的语语语语句句句句n+1n+1。defaultdefault语语语语句句句句可可可可省省省省略略略略。若若若若语语语语句句句句i i后后后后不不不不含含含含breakbreak,继继继继续续续续执执执执行行行行下下下下一一一
17、一条条条条语语语语句句句句i+1i+1,不用判断常量表达式。,不用判断常量表达式。,不用判断常量表达式。,不用判断常量表达式。注意:注意:(1)(1)casecase分分分分支支支支中中中中的的的的语语语语句句句句i i后后后后面面面面的的的的breakbreak语语语语句句句句一一一一般般般般情情情情况况况况下下下下不不不不要要要要省省省省略略略略,因因因因为为为为没没没没有有有有breakbreak语语语语句句句句,程程程程序序序序不不不不能能能能跳跳跳跳出出出出switchswitch语语语语句句句句,而而而而是是是是执执执执行行行行下下下下一一一一条条条条casecase语语语语句句句
18、句后后后后面面面面的语句,直到遇到的语句,直到遇到的语句,直到遇到的语句,直到遇到breakbreak才能终止才能终止才能终止才能终止switchswitch的执行。的执行。的执行。的执行。switch(s)switch(s)case+:a=a+b;case+:a=a+b;case-:a=a*b;break;case-:a=a*b;break;case*:a=a-b;break;case*:a=a-b;break;case /:a=a/b;break case /:a=a/b;break (2)(2)条条条条件件件件表表表表达达达达式式式式和和和和常常常常量量量量表表表表达达达达式式式式的的的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制 顺序 结构 选择
限制150内