(8)--5.第五章 用C语言进行结构化程序设计.ppt

上传人:奉*** 文档编号:96451086 上传时间:2023-11-29 格式:PPT 页数:59 大小:2.98MB
返回 下载 相关 举报
(8)--5.第五章 用C语言进行结构化程序设计.ppt_第1页
第1页 / 共59页
(8)--5.第五章 用C语言进行结构化程序设计.ppt_第2页
第2页 / 共59页
点击查看更多>>
资源描述

《(8)--5.第五章 用C语言进行结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《(8)--5.第五章 用C语言进行结构化程序设计.ppt(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2023/11/295.1 5.1 顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计顺序结构的程序设计5.2 5.2 选择结构选择结构选择结构选择结构5.3 5.3 循环控制循环控制循环控制循环控制5.4 5.4 几种常见的循环控制结构程序设计技术简介几种常见的循环控制结构程序设计技术简介几种常见的循环控制结构程序设计技术简介几种常见的循环控制结构程序设计技术简介5.5 break5.5 break语句和语句和语句和语句和continuecontinue语句语句语句语句第五章第五章 用用C语言进行结构化程序设计语言进行结构化程序设计2023/11/295.1 5.1 顺序结构的程序设计顺

2、序结构的程序设计顺序结构的程序设计顺序结构的程序设计ABint main(void)int main(void)int nA,nB,nC;int nA,nB,nC;nA=5;nA=5;nB=6;nB=6;nC=nA+nB;nC=nA+nB;printf(nC is%d,nC);printf(nC is%d,nC);return 0;return 0;/*End of main()*/*End of main()*/u顺序结构是结构化程序的基本顺序结构是结构化程序的基本顺序结构是结构化程序的基本顺序结构是结构化程序的基本结构。本质上,问题求解过程结构。本质上,问题求解过程结构。本质上,问题求解过

3、程结构。本质上,问题求解过程都是顺序结构的。顺序结构下都是顺序结构的。顺序结构下都是顺序结构的。顺序结构下都是顺序结构的。顺序结构下程序将按照语句或模块出现的程序将按照语句或模块出现的程序将按照语句或模块出现的程序将按照语句或模块出现的先后依次执行,语句和语句之先后依次执行,语句和语句之先后依次执行,语句和语句之先后依次执行,语句和语句之间、模块和模块之间的先后决间、模块和模块之间的先后决间、模块和模块之间的先后决间、模块和模块之间的先后决定了其执行的顺序。定了其执行的顺序。定了其执行的顺序。定了其执行的顺序。u每一个模块都有一个数据入口每一个模块都有一个数据入口每一个模块都有一个数据入口每一

4、个模块都有一个数据入口和一个数据出口。和一个数据出口。和一个数据出口。和一个数据出口。2023/11/29声明变量声明变量声明变量声明变量fA,fB,fC,fS,fPfA,fB,fC,fS,fP给出输入提示信息给出输入提示信息给出输入提示信息给出输入提示信息Input(fA,fB,fC):Input(fA,fB,fC):计算计算计算计算fP=(fA+fB+fC)/2fP=(fA+fB+fC)/2计算面积计算面积计算面积计算面积fSfS输出三角形的面积值输出三角形的面积值输出三角形的面积值输出三角形的面积值fSfS假设假设假设假设三边三边三边三边a,b,ca,b,c能构成三角形。半周长能构成三角

5、形。半周长能构成三角形。半周长能构成三角形。半周长p=(a+b+c)/2p=(a+b+c)/2,面积,面积,面积,面积s=s=。例例例例5-1 5-1 求给定三边的三角形的面积。求给定三边的三角形的面积。求给定三边的三角形的面积。求给定三边的三角形的面积。格式化输入三边格式化输入三边格式化输入三边格式化输入三边fA,fB,fCfA,fB,fC的值的值的值的值N-SN-S流程图流程图流程图流程图a ab bc c求面积求面积求面积求面积S S分析分析分析分析:2023/11/29#include#include#include#include int main(void)int main(voi

6、d)float float fA,fB,fC,fS,fPfA,fB,fC,fS,fP;printfprintf(Input(Input(fA,fB,fCfA,fB,fC):);):);scanfscanf(%f,%f,%f,&(%f,%f,%f,&fAfA,&,&fBfB,&,&fCfC););fPfP=(=(fA+fB+fCfA+fB+fC)/2;)/2;/*/*半周长半周长半周长半周长*/*/fSfS=sqrt(=sqrt(fPfP*(*(fP-fAfP-fA)*()*(fP-fBfP-fB)*()*(fP-fCfP-fC););/*/*面积面积面积面积*/printfprintf(fSf

7、S=%fn,=%fn,fSfS););return 0;return 0;/*End of main()*/*End of main()*/运行结果如下:运行结果如下:运行结果如下:运行结果如下:Input(fA,fB,fC):Input(fA,fB,fC):3,4,53,4,5fS=6.000000fS=6.000000格式化格式化格式化格式化输入输入输入输入程序代码:程序代码:程序代码:程序代码:改进与思考:改进与思考:改进与思考:改进与思考:如何保证边如何保证边如何保证边如何保证边a,b,ca,b,c一定一定一定一定构成三角形构成三角形构成三角形构成三角形?2023/11/29例例例例5

8、-3 5-3 输入无符号整数输入无符号整数输入无符号整数输入无符号整数u_au_a和带符号整数和带符号整数和带符号整数和带符号整数n_bn_b,分别以,分别以,分别以,分别以10#,8#,16#10#,8#,16#和不带符号的和不带符号的和不带符号的和不带符号的10#10#进制整数输出。进制整数输出。进制整数输出。进制整数输出。分析:分析:分析:分析:简单的简单的简单的简单的IOIO过程。过程。过程。过程。N-SN-S流程图:流程图:流程图:流程图:输入整数输入整数输入整数输入整数u_au_a和和和和n_bn_b格式化输出格式化输出格式化输出格式化输出u_au_a格式化输出格式化输出格式化输出

9、格式化输出n_bn_b2023/11/29#include#include int main(void)int main(void)unsigned int u_a;unsigned int u_a;int n_b;int n_b;printf(Please input two integers(u_a,n_b):);printf(Please input two integers(u_a,n_b):);scanf(%u,%d,&u_a,&n_b);scanf(%u,%d,&u_a,&n_b);printf(u_a=%d,%o,%x,%un,u_a,u_a,u_a,u_a);printf(u_

10、a=%d,%o,%x,%un,u_a,u_a,u_a,u_a);printf(n_b=%d,%o,%x,%un,n_b,n_b,n_b,n_b);printf(n_b=%d,%o,%x,%un,n_b,n_b,n_b,n_b);return 0;return 0;/*End of main()*/*End of main()*/程序代码:程序代码:程序代码:程序代码:运行结果如下:运行结果如下:运行结果如下:运行结果如下:Please input two integers(u_a,n_b):Please input two integers(u_a,n_b):65535,-265535,-2n

11、_b=-2,177776,fffe,65534n_b=-2,177776,fffe,65534u_a=-1,177777,ffff,65535u_a=-1,177777,ffff,65535 能不能从源能不能从源代码中提炼出代码中提炼出流程图呢?流程图呢?输入整数输入整数输入整数输入整数u_au_a和和和和n_bn_b格式化输出格式化输出格式化输出格式化输出u_au_a格式化输出格式化输出格式化输出格式化输出n_bn_b2023/11/29a abc c求面积求面积求面积求面积S S对例对例对例对例5-15-1求三角形面积问题,考虑求三角形面积问题,考虑求三角形面积问题,考虑求三角形面积问题,

12、考虑三边能否构成三角形时需判断。三边能否构成三角形时需判断。三边能否构成三角形时需判断。三边能否构成三角形时需判断。5.2 5.2 选择结构选择结构选择结构选择结构对仅用顺序结构无法完成的一些逻辑判对仅用顺序结构无法完成的一些逻辑判对仅用顺序结构无法完成的一些逻辑判对仅用顺序结构无法完成的一些逻辑判断与处理过程,断与处理过程,断与处理过程,断与处理过程,C C语言中提供了语言中提供了语言中提供了语言中提供了根据不根据不根据不根据不同条件值同条件值同条件值同条件值分别选择分别选择分别选择分别选择相应的程序代码相应的程序代码相应的程序代码相应的程序代码去执去执去执去执行的机制。即选择结构机制。行的

13、机制。即选择结构机制。行的机制。即选择结构机制。行的机制。即选择结构机制。考虑如下问题:考虑如下问题:考虑如下问题:考虑如下问题:1.求分段函数的值:求分段函数的值:求分段函数的值:求分段函数的值:2.任意输入三个数,输出最大者。任意输入三个数,输出最大者。任意输入三个数,输出最大者。任意输入三个数,输出最大者。怎么解决这怎么解决这怎么解决这怎么解决这类问题呢?类问题呢?类问题呢?类问题呢?2023/11/29P PB BA Ay yesesnonou选择结构分类选择结构分类选择结构分类选择结构分类二分支选择结构二分支选择结构二分支选择结构二分支选择结构多分支选择结构多分支选择结构多分支选择结

14、构多分支选择结构用什么语用什么语用什么语用什么语句实现?句实现?句实现?句实现?自然语言:自然语言:自然语言:自然语言:如果如果如果如果 那么那么那么那么 否则否则否则否则C C语言:语言:语言:语言:选择(分支)语句选择(分支)语句选择(分支)语句选择(分支)语句kA A1 1A A2 2A Ai iA An nk=kk=k2 2k=kk=k1 1k=kk=kn nk=kk=ki i.B BP PA Ayesyesnono2023/11/29uu用用用用if if语句设计选择结构程序语句设计选择结构程序语句设计选择结构程序语句设计选择结构程序if if语句语句语句语句构成的选择结构是构成的选

15、择结构是构成的选择结构是构成的选择结构是C C语言的三种基本结构之一。语言的三种基本结构之一。语言的三种基本结构之一。语言的三种基本结构之一。用来确定给定的条件是否满足,所含条件用来确定给定的条件是否满足,所含条件用来确定给定的条件是否满足,所含条件用来确定给定的条件是否满足,所含条件一般是关一般是关一般是关一般是关系表达式或逻辑运算表达式。系表达式或逻辑运算表达式。系表达式或逻辑运算表达式。系表达式或逻辑运算表达式。1.if if语句的缺省形式语句的缺省形式语句的缺省形式语句的缺省形式2.if if语句的标准形式语句的标准形式语句的标准形式语句的标准形式3.else ifelse if语句语

16、句语句语句4.if if语句的嵌套语句的嵌套语句的嵌套语句的嵌套本节本节重点重点2023/11/29/*/*输出不及格的成绩输出不及格的成绩输出不及格的成绩输出不及格的成绩*/int int main(main(voidvoid)int int nScorenScore;scanfscanf(%d,&(%d,&nScorenScore););if(if(nScorenScore6060)printfprintf(%dn,(%dn,nScorenScore););return 0 return 0;/*End of main()*/*End of main()*/if if(条件表达式条件表达式

17、条件表达式条件表达式)语句组语句组语句组语句组1 1 语句组语句组语句组语句组2 2语句组语句组语句组语句组1 1语句组语句组语句组语句组2 2YesYesNoNo条件条件条件条件?功能:功能:功能:功能:若为表达式的值非若为表达式的值非若为表达式的值非若为表达式的值非0 0,执,执,执,执行语句组行语句组行语句组行语句组1 1。否则。否则。否则。否则,跳过跳过跳过跳过语句组语句组语句组语句组1 1继续继续继续继续执行语句组执行语句组执行语句组执行语句组2 2。条件表达式条件表达式条件表达式条件表达式语句组语句组语句组语句组1 1语句组语句组语句组语句组2 2l1.1.最简单的最简单的最简单的

18、最简单的if if语句语句语句语句格式:格式:格式:格式:(1)整个条件整个条件整个条件整个条件表达式必须用圆括号对表达式必须用圆括号对表达式必须用圆括号对表达式必须用圆括号对()()括起来且不可括起来且不可括起来且不可括起来且不可省略;省略;省略;省略;(2)语句组语句组语句组语句组2 2不属于不属于不属于不属于if if语句范围;语句范围;语句范围;语句范围;(3)语句组语句组语句组语句组1 1只有条语句时,花括号对可以省略;只有条语句时,花括号对可以省略;只有条语句时,花括号对可以省略;只有条语句时,花括号对可以省略;(4)条件表达式可以是任何类型的表达式;条件表达式可以是任何类型的表达

19、式;条件表达式可以是任何类型的表达式;条件表达式可以是任何类型的表达式;(5)要注意条件表达式后直接跟分号的情形,它表要注意条件表达式后直接跟分号的情形,它表要注意条件表达式后直接跟分号的情形,它表要注意条件表达式后直接跟分号的情形,它表明表达式成立时执行空语句。明表达式成立时执行空语句。明表达式成立时执行空语句。明表达式成立时执行空语句。2023/11/29 fMaxval_2?fMaxval_2?YesYesNoNofMax=val_2;fMax=val_2;fMax=val_1;fMax=val_1;输入输入输入输入val_1,val_2,val_3val_1,val_2,val_3 f

20、Maxval_3?fMaxval_3?YesYesNoNofMax=val_3;fMax=val_3;输出最大者输出最大者输出最大者输出最大者fMaxfMax(1)(1)设设设设max=max=第一个数;第一个数;第一个数;第一个数;(2)(2)maxmax与与与与第第第第二二二二个个个个数数数数比比比比较较较较,若若若若maxmax小小小小于于于于第第第第二二二二个个个个数数数数,max=max=第二个数;第二个数;第二个数;第二个数;(3)(3)比比比比较较较较maxmax与与与与第第第第三三三三个个个个数数数数,maxmax小小小小 于于于于 第第第第 三三三三 个个个个 则则则则max

21、=max=第三个数;第三个数;第三个数;第三个数;(4)(4)输出输出输出输出maxmax。例例例例5-6 5-6 求三个数的最大者。求三个数的最大者。求三个数的最大者。求三个数的最大者。分析:分析:分析:分析:2023/11/29int main(void)int main(void)float val_1,val_2,val_3,fMax;float val_1,val_2,val_3,fMax;printf(Please input 3 values(val_1,val_2,val_3):);printf(Please input 3 values(val_1,val_2,val_3):

22、);scanf(%f,%f,%f,&val_1,&val_3,&val_3);scanf(%f,%f,%f,&val_1,&val_3,&val_3);fMax=val_1;fMax=val_1;if(fMaxval_2)fMax=val_2;if(fMaxval_2)fMax=val_2;if(fMaxval_3)fMax=val_3;if(fMax6060)printfprintf(及格及格及格及格 n);n);else else printfprintf(不及格不及格不及格不及格 n);n);l2.2.标准格式标准格式标准格式标准格式ifelseifelse格式:格式:格式:格式:功能:

23、功能:功能:功能:表达式值非表达式值非表达式值非表达式值非0 0时执行语句组时执行语句组时执行语句组时执行语句组1 1,否则执行语句组否则执行语句组否则执行语句组否则执行语句组2 2。语句组语句组语句组语句组1 1语句组语句组语句组语句组2 2YesYes语句组语句组语句组语句组3 3NoNo条件条件条件条件?语句组语句组语句组语句组1 1语句组语句组语句组语句组2 2语句组语句组语句组语句组3 3(1)语句组语句组语句组语句组3 3不属于不属于不属于不属于if if语句的语句组。它只有语句的语句组。它只有语句的语句组。它只有语句的语句组。它只有在语句组在语句组在语句组在语句组1 1或语句组或

24、语句组或语句组或语句组2 2执行完后才可能被执执行完后才可能被执执行完后才可能被执执行完后才可能被执行;行;行;行;(2)语句组语句组语句组语句组1 1或语句组或语句组或语句组或语句组2 2只有条语句时,对应只有条语句时,对应只有条语句时,对应只有条语句时,对应的花括号对可以省略。的花括号对可以省略。的花括号对可以省略。的花括号对可以省略。2023/11/29#include#includeint main(void)int main(void)float fA,fB;float fA,fB;printf(input two numbers:);printf(input two numbers

25、:);scanf(%f,%f,&fA,&fB);scanf(%f,%f,&fA,&fB);if(fAfB)if(fAfB)printf(Sorted list is%f,%fn,fB,fA);printf(Sorted list is%f,%fn,fB,fA);else else printf(Sorted list is%f,%fn,fA,fB);printf(Sorted list is%f,%fn,fA,fB);return 0;return 0;/*End of main()*/*End of main()*/只有一个语句只有一个语句只有一个语句只有一个语句时,时,时,时,可以省略可以

26、省略可以省略可以省略例例例例5-7(a)5-7(a)对两个实数按由小到大次序输出。对两个实数按由小到大次序输出。对两个实数按由小到大次序输出。对两个实数按由小到大次序输出。2023/11/29#includeint main(void)float fA,fB,fC,fTemp;printf(input three numbersn);scanf(%f,%f,%f,&fA,&fB,&fC);if(fAfB)fTemp=fA;fA=fB;fB=fD;if(fAfC)fD=fA;fA=fC;fC=fTemp;if(fBfC)fTemp=fB;fB=fC;fC=fTemp;printf(Sorted

27、list is%5.2f,%5.2f,%5.2fn,fA,fB,fC);return 0;/*End of main()*/去掉红色去掉红色去掉红色去掉红色 ,程序,程序,程序,程序的执行情况如何?的执行情况如何?的执行情况如何?的执行情况如何?例例例例5-7(b)5-7(b)对输入的三个数由小到大输出。对输入的三个数由小到大输出。对输入的三个数由小到大输出。对输入的三个数由小到大输出。2023/11/29例例例例5-95-9 编写程序判定输入年份是否闰年。编写程序判定输入年份是否闰年。编写程序判定输入年份是否闰年。编写程序判定输入年份是否闰年。分析:分析:分析:分析:#include#inc

28、lude int main(void)int main(void)unsigned uYear,unsigned uYear,nOknOk;/*nOk is a flag*/*nOk is a flag*/printf(Please input year number:n);printf(Please input year number:n);scanf(%u,&uYear);scanf(%u,&uYear);if if(uYear%4=0&uYear%100!=0uYear%4=0&uYear%100!=0)nOk=1nOk=1;elseelse if(uYear%400=0)if(uYea

29、r%400=0)nOk=1nOk=1;else nOk=0;else nOk=0;if if(nOknOk)printf(It is a leap year!);)printf(It is a leap year!);elseelse printf(It is not a leap year);printf(It is not a leap year);return 0;return 0;/*End of main()*/*End of main()*/2023/11/29l3.3.多分支的多分支的多分支的多分支的 i i f f 结构结构结构结构(else ifelse if语句语句语句语句

30、)if if (表达式表达式表达式表达式1 1)语句组语句组语句组语句组1 1 else ifelse if (表达式表达式表达式表达式2 2)语句组语句组语句组语句组2 2 else ifelse if(表达式表达式表达式表达式3 3)语句组语句组语句组语句组3 3 elseelse 语句语句语句语句组组组组n n 语句组语句组语句组语句组n+1n+1语句组语句组n+1 表达式表达式表达式表达式1 1YesYes语句语句语句语句组组组组1 1NoNo 表达式表达式表达式表达式2 2语句语句语句语句组组组组2 2YesYesNoNo 表达式表达式表达式表达式n-1n-1语句组语句组语句组语句组

31、n-1n-1语句组语句组语句组语句组n nYesYesNoNo无论是无论是无论是无论是if if还是还是还是还是ifelseifelse都只能进行两种都只能进行两种都只能进行两种都只能进行两种选择。多选一时表达不方便,为此,选择。多选一时表达不方便,为此,选择。多选一时表达不方便,为此,选择。多选一时表达不方便,为此,C C语言提供了语言提供了语言提供了语言提供了else ifelse if语句。语句。语句。语句。格式格式格式格式:(1)语句组语句组语句组语句组n+1n+1不属于不属于不属于不属于else ifelse if语句的语句组;语句的语句组;语句的语句组;语句的语句组;(2)所有所有

32、所有所有else ifelse if分支的条件表达式相互排斥或不相容。分支的条件表达式相互排斥或不相容。分支的条件表达式相互排斥或不相容。分支的条件表达式相互排斥或不相容。2023/11/29例:例:例:例:从键盘输入一个正整数从键盘输入一个正整数从键盘输入一个正整数从键盘输入一个正整数,判断它是几位数。判断它是几位数。判断它是几位数。判断它是几位数。怎么判断?怎么判断?可以根据数的大小范围来确定:可以根据数的大小范围来确定:可以根据数的大小范围来确定:可以根据数的大小范围来确定:个位数大于等于个位数大于等于个位数大于等于个位数大于等于0 0小于小于小于小于10;10;两位数应该大于等于两位数

33、应该大于等于两位数应该大于等于两位数应该大于等于1010小于小于小于小于100;100;三位数应该大于等于三位数应该大于等于三位数应该大于等于三位数应该大于等于100100小于小于小于小于1000;1000;四位数应该大于等于四位数应该大于等于四位数应该大于等于四位数应该大于等于10001000小于小于小于小于10000;10000;多分支的判断多分支的判断分析:分析:#include include#include#include int int main(main(v voidoid )int int n numum;scanf(scanf(%d%d,&,&n numum););if (a

34、bs(num)10)printf(%d is a one-digit data.n,num);else if(abs(num)100)printf(%d is a two-digit data.n,num);else if(abs(num)1000)printf(%d is a three-digit data.n,num);else if(abs(num)10000)printf(%d is a four-digit data.n,num);else printf(%d is a five-digit data.n,num);return 0;/*End of main()*/2023/11

35、/29例例例例5-10 5-10 试编程实现如下分段函数的求值问题:试编程实现如下分段函数的求值问题:试编程实现如下分段函数的求值问题:试编程实现如下分段函数的求值问题:#include#include int main(void)int main(void)float x;float x;printf(Please input xs value:);printf(Please input xs value:);scanf(%f,&x);scanf(%f,&x);if if(x0)(x0)printf(x is bigger than zero!n);printf(x is bigger th

36、an zero!n);else ifelse if(x=0)(x=0)printf(x is zero!n);printf(x is zero!n);else else printf(x is smaller than printf(x is smaller than zero!n);zero!n);return 0;return 0;/*End of main()*/*End of main()*/问题分析:问题分析:问题分析:问题分析:2023/11/29l4.4.if if语句的嵌套语句的嵌套语句的嵌套语句的嵌套如:如:如:如:if if (表达式表达式表达式表达式1)1)if if (

37、表达式表达式表达式表达式2 2)语句组语句组语句组语句组1 1 elseelse 语句组语句组语句组语句组2 2 elseelse if if(表达式表达式表达式表达式3)3)语句组语句组语句组语句组3 3 elseelse 语句组语句组语句组语句组4 4 判断表达式判断表达式判断表达式判断表达式1 1,若为非,若为非,若为非,若为非0 0,再判断表达式,再判断表达式,再判断表达式,再判断表达式2 2,非,非,非,非0 0执执执执行语句组行语句组行语句组行语句组1 1,否则执行语句组,否则执行语句组,否则执行语句组,否则执行语句组2 2。若表达式。若表达式。若表达式。若表达式1 1为为为为0

38、0,再判断,再判断,再判断,再判断表达式表达式表达式表达式3 3,非,非,非,非0 0执行语句组执行语句组执行语句组执行语句组3 3,否则执行语句组,否则执行语句组,否则执行语句组,否则执行语句组4 4。功能功能功能功能:表达式表达式表达式表达式1 1语句组语句组语句组语句组1 1语句组语句组语句组语句组2 2语句组语句组语句组语句组3 3语句组语句组语句组语句组4 4表达式表达式表达式表达式3 3表达式表达式表达式表达式2 21 11 11 10 00 00 02023/11/29if(if(表达式表达式表达式表达式1)1)if(if(表达式表达式表达式表达式2)2)if(if(表达式表达式

39、表达式表达式3)3)if(if(表达式表达式表达式表达式1)1)if(if(表达式表达式表达式表达式2)2)else else if(if(表达式表达式表达式表达式3)3)多个多个多个多个if if语句结构之间的关系语句结构之间的关系语句结构之间的关系语句结构之间的关系交叉关系交叉关系交叉关系交叉关系 嵌套关系嵌套关系嵌套关系嵌套关系平行关系平行关系平行关系平行关系 if(if(表达式表达式表达式表达式1)1)表达式表达式表达式表达式1 1的语句组的语句组的语句组的语句组1 1if(if(表达式表达式表达式表达式2 2)表达式表达式表达式表达式2 2的语句组的语句组的语句组的语句组1 1 el

40、se else 表达式表达式表达式表达式1 1的语句组的语句组的语句组的语句组2 2 else else 表达式表达式表达式表达式2 2的语句组的语句组的语句组的语句组2 2 2023/11/29就近匹配就近匹配就近匹配就近匹配或由或由或由或由(嵌套层的嵌套层的嵌套层的嵌套层的)内部向外部内部向外部内部向外部内部向外部顺序匹配。顺序匹配。顺序匹配。顺序匹配。elseelse总是先与总是先与总是先与总是先与同层最近同层最近同层最近同层最近的的的的if if匹配。书写不当会造成逻辑上的错匹配。书写不当会造成逻辑上的错匹配。书写不当会造成逻辑上的错匹配。书写不当会造成逻辑上的错误。误。误。误。if

41、if语句的匹配原则语句的匹配原则语句的匹配原则语句的匹配原则if(if(条件条件条件条件1)1)if(if(条件条件条件条件2)2)语句组语句组语句组语句组 else else if(if(条件条件条件条件3)3)语句组语句组语句组语句组2 2 elseelse 语句组语句组语句组语句组3 3if(if(条件条件条件条件1)1)if(if(条件条件条件条件2)2)语句组语句组语句组语句组 else else if(if(条件条件条件条件3)3)语句组语句组语句组语句组2 2 elseelse语句组语句组语句组语句组3 3if(if(条件条件条件条件1)1)if(if(条件条件条件条件2)2)语

42、句组语句组语句组语句组elseelse if(if(条件条件条件条件3)3)语句组语句组语句组语句组2 2elseelse语句组语句组语句组语句组3 3三个表达的三个表达的意思相同吗?意思相同吗?2023/11/29A A)1 1B)2B)2C)3C)3D)6D)6nA=1,nB=3,nC=5,nD=4,nA=1,nB=3,nC=5,nD=4,nX=?nX=?if(nAnB)if(nCnD)nX=1;else if(nAnC)if(nB5)+5)if if (nAnA+5)+5)nBnB=2;=2;else ifelse if (nAnA+5)+5)nBnB=3;=3;else else nB

43、nB=4;=4;printf(%d,printf(%d,nBnB););return 0;return 0;/*End of main()*/*End of main()*/A)A)1 1B)2B)2C)3C)3D)4D)4elseifif else elseelseelseififif例题例题例题例题课外作业:课外作业:课外作业:课外作业:请绘制这两个例子的流程图。请绘制这两个例子的流程图。请绘制这两个例子的流程图。请绘制这两个例子的流程图。2023/11/291.if if中的条件表达式必须用中的条件表达式必须用中的条件表达式必须用中的条件表达式必须用()()括住,且在括住,且在括住,且在

44、括住,且在括括括括号外部没有分号号外部没有分号号外部没有分号号外部没有分号;2.2.if if或或或或elseelse子句后面的语句均子句后面的语句均子句后面的语句均子句后面的语句均有分号有分号有分号有分号;3.elseelse是是是是if if语句的子句,不可单独使用;语句的子句,不可单独使用;语句的子句,不可单独使用;语句的子句,不可单独使用;1.当当当当if if或或或或elseelse子句后是多个执行语句构成的语子句后是多个执行语句构成的语子句后是多个执行语句构成的语子句后是多个执行语句构成的语句组时句组时句组时句组时(复合语句复合语句复合语句复合语句),必须用,必须用,必须用,必须用

45、括起来,否括起来,否括起来,否括起来,否则各子句均只能管到其后第一个分号处;则各子句均只能管到其后第一个分号处;则各子句均只能管到其后第一个分号处;则各子句均只能管到其后第一个分号处;2.5.if5.if或或或或else else 子句后只接一单个分号时,应子句后只接一单个分号时,应子句后只接一单个分号时,应子句后只接一单个分号时,应把之作为空语句处理。把之作为空语句处理。把之作为空语句处理。把之作为空语句处理。有关有关有关有关if if语句使用的几点说明语句使用的几点说明语句使用的几点说明语句使用的几点说明:2023/11/29格式:格式:格式:格式:switchswitch(整型或字符型表

46、达式整型或字符型表达式整型或字符型表达式整型或字符型表达式)case case 常量表达式常量表达式常量表达式常量表达式1 1:语句语句语句语句组组组组1 1 case case 常量表达式常量表达式常量表达式常量表达式2 2:语句语句语句语句组组组组2 2 .case case 常量表达式常量表达式常量表达式常量表达式n n:语句语句语句语句组组组组n n default:default:语句语句语句语句组组组组n+1n+1 switchswitch与与与与else if else if 的的的的区别何在?区别何在?区别何在?区别何在?uswitchswitch语句语句语句语句1.switc

47、h 1.switch 语句的基本语法和执行逻辑语句的基本语法和执行逻辑语句的基本语法和执行逻辑语句的基本语法和执行逻辑功能:功能:功能:功能:先先先先计算表达式值,计算表达式值,计算表达式值,计算表达式值,判断判断判断判断此值是否与某个常量此值是否与某个常量此值是否与某个常量此值是否与某个常量表达式的值表达式的值表达式的值表达式的值匹配匹配匹配匹配,如果有,如果有,如果有,如果有,控制转向控制转向控制转向控制转向其后其后其后其后相应的语句相应的语句相应的语句相应的语句组;若无,执行组;若无,执行组;若无,执行组;若无,执行defaultdefault语语语语句组。句组。句组。句组。都属于多分支

48、选择控制结构。都属于多分支选择控制结构。都属于多分支选择控制结构。都属于多分支选择控制结构。else ifelse if用于用于用于用于多条件并多条件并多条件并多条件并列列列列选择,要求各分支条件选择,要求各分支条件选择,要求各分支条件选择,要求各分支条件相互排斥相互排斥相互排斥相互排斥且每次只能选择其中且每次只能选择其中且每次只能选择其中且每次只能选择其中一种情形进行处理。一种情形进行处理。一种情形进行处理。一种情形进行处理。switchswitch用于用于用于用于单条件测试单条件测试单条件测试单条件测试,从多种可,从多种可,从多种可,从多种可能中能中能中能中找到处理分支入口并依次顺序执行找

49、到处理分支入口并依次顺序执行找到处理分支入口并依次顺序执行找到处理分支入口并依次顺序执行。两者在执行逻。两者在执行逻。两者在执行逻。两者在执行逻辑上是有差异。辑上是有差异。辑上是有差异。辑上是有差异。2023/11/29语句组语句组语句组语句组n+2n+2else if else if:条件条件条件条件 1 1语句组语句组语句组语句组1 1YesYesNoNo语句组语句组语句组语句组n+1n+1elseelse条件条件条件条件 n n语句组语句组语句组语句组n nYesYes条件条件条件条件 2 2语句组语句组语句组语句组2 2YesYesNoNoswitchswitch:语句组语句组语句组语

50、句组n+2n+2case 1case 1语句组语句组语句组语句组1 1YesYesNoNobreak?break?YesYesNoNocase 2case 2语句组语句组语句组语句组2 2NoNoYesYescase case n n语句组语句组语句组语句组n nYesYesNoNobreak?break?NoNoYesYesbreakbreak?语句组语句组语句组语句组n+1n+1default:default:NoNoYesYes2023/11/29int main(void)float value1,value2;char cOperator;printf(Type the expres

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁