程序控制结构优秀课件.ppt

上传人:石*** 文档编号:78748624 上传时间:2023-03-19 格式:PPT 页数:40 大小:2.05MB
返回 下载 相关 举报
程序控制结构优秀课件.ppt_第1页
第1页 / 共40页
程序控制结构优秀课件.ppt_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《程序控制结构优秀课件.ppt》由会员分享,可在线阅读,更多相关《程序控制结构优秀课件.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、程序控制结构第1页,本讲稿共40页3.1 C 语言结构化程序设计基础 程序的控制结构(黑箱)程序的控制结构(黑箱)程序的控制结构(黑箱)程序的控制结构(黑箱)单入口单出口的控制结构易于理解单入口单出口的控制结构易于理解单入口单出口的控制结构易于理解单入口单出口的控制结构易于理解 三种基本控制结构:顺序、分支、循环三种基本控制结构:顺序、分支、循环三种基本控制结构:顺序、分支、循环三种基本控制结构:顺序、分支、循环 控制结构可以嵌套,以构成更复杂的控制结构控制结构可以嵌套,以构成更复杂的控制结构控制结构可以嵌套,以构成更复杂的控制结构控制结构可以嵌套,以构成更复杂的控制结构 程序的结构化程序的结

2、构化程序的结构化程序的结构化 三种基本控制结构可以构造任何复杂的结构化算法三种基本控制结构可以构造任何复杂的结构化算法三种基本控制结构可以构造任何复杂的结构化算法三种基本控制结构可以构造任何复杂的结构化算法 结构化程序设计原则:结构化程序设计原则:结构化程序设计原则:结构化程序设计原则:自顶向下自顶向下自顶向下自顶向下,逐步求精逐步求精逐步求精逐步求精 结构化程序设计过程:首先对任务进行功能分解,然后使用结构结构化程序设计过程:首先对任务进行功能分解,然后使用结构结构化程序设计过程:首先对任务进行功能分解,然后使用结构结构化程序设计过程:首先对任务进行功能分解,然后使用结构化程序设计思想逐一解

3、决各个子问题,最后构造原始问题的解化程序设计思想逐一解决各个子问题,最后构造原始问题的解化程序设计思想逐一解决各个子问题,最后构造原始问题的解化程序设计思想逐一解决各个子问题,最后构造原始问题的解 好处:逻辑性强,可读性好,维护方便好处:逻辑性强,可读性好,维护方便好处:逻辑性强,可读性好,维护方便好处:逻辑性强,可读性好,维护方便第2页,本讲稿共40页3.2 顺序结构 顺序结构的含义顺序结构的含义顺序结构的含义顺序结构的含义 由一组顺序执行的处理块组成,每个处理块可能包含一条或由一组顺序执行的处理块组成,每个处理块可能包含一条或由一组顺序执行的处理块组成,每个处理块可能包含一条或由一组顺序执

4、行的处理块组成,每个处理块可能包含一条或一组语句,完成一项任务一组语句,完成一项任务一组语句,完成一项任务一组语句,完成一项任务 顺序结构是最基本的算法结构顺序结构是最基本的算法结构顺序结构是最基本的算法结构顺序结构是最基本的算法结构 语句与复合语句(语句块)语句与复合语句(语句块)语句与复合语句(语句块)语句与复合语句(语句块)三种语句结构:单语句(三种语句结构:单语句(三种语句结构:单语句(三种语句结构:单语句(表达式表达式表达式表达式;)、空语句()、空语句()、空语句()、空语句(;)、复合)、复合)、复合)、复合语句(语句(语句(语句(语句序列语句序列语句序列语句序列)第3页,本讲稿

5、共40页顺序结构程序示例 分别输入两个复数的实部与虚部,计算两个复数的和、分别输入两个复数的实部与虚部,计算两个复数的和、分别输入两个复数的实部与虚部,计算两个复数的和、分别输入两个复数的实部与虚部,计算两个复数的和、差、积、商并输出结果差、积、商并输出结果差、积、商并输出结果差、积、商并输出结果#include include int int mainmain()()float float a a,b b,c c,d d,realreal,imaginaryimaginary;printf printf(“Input reals and imaginaries of two complexe

6、s(“Input reals and imaginaries of two complexesn n”);”);scanfscanf(“%(“%f f,%,%f f,%,%f f,%,%f f”,&”,&a a,&,&b b,&,&c c,&,&d d););printf printf(“Sum:%(“Sum:%f f+%+%f fi in n”,”,a a+c c,b b+d d););printf printf(“Difference:%(“Difference:%f f+%+%f fi in n”,”,a a c c,b b d d););realreal=a a*c c b b*d d

7、;imaginaryimaginary=a a*d d+b b*c c;printf printf(“Product:%(“Product:%f f+%+%f fi in n”,”,realreal,imaginaryimaginary););realreal=(=(a a*c c+b b*d)d)/(/(c c*c c+d d*d d););imaginaryimaginary=(=(b b*c c a a*d)d)/(/(c c*c c+d d*d d););printf printf(“Quotient:%(“Quotient:%f f+%+%f fi in n”,”,realreal,

8、imaginaryimaginary););return 0;return 0;实际需要输入实际需要输入实际需要输入实际需要输入4 4 4 4个实数个实数个实数个实数第4页,本讲稿共40页3.3 分支结构 分支结构(选择结构)的含义分支结构(选择结构)的含义分支结构(选择结构)的含义分支结构(选择结构)的含义 根据某一条件的判断结果,确定程序的流程,即选择哪一个根据某一条件的判断结果,确定程序的流程,即选择哪一个根据某一条件的判断结果,确定程序的流程,即选择哪一个根据某一条件的判断结果,确定程序的流程,即选择哪一个程序分支中的处理块去执行程序分支中的处理块去执行程序分支中的处理块去执行程序分支

9、中的处理块去执行 最基本的分支结构是二路分支结构最基本的分支结构是二路分支结构最基本的分支结构是二路分支结构最基本的分支结构是二路分支结构 以条件判断为起点,如果判断结果为真,则执行以条件判断为起点,如果判断结果为真,则执行以条件判断为起点,如果判断结果为真,则执行以条件判断为起点,如果判断结果为真,则执行A A处理块处理块处理块处理块的操作,否则执行的操作,否则执行的操作,否则执行的操作,否则执行B B处理块的操作处理块的操作处理块的操作处理块的操作第5页,本讲稿共40页if-else 语句 语句格式:语句格式:语句格式:语句格式:if(if(表达式表达式表达式表达式)语句语句语句语句1 e

10、lse 1 else 语句语句语句语句2 2 表达式必须位于括号内,一般为关系或逻辑表达式表达式必须位于括号内,一般为关系或逻辑表达式表达式必须位于括号内,一般为关系或逻辑表达式表达式必须位于括号内,一般为关系或逻辑表达式 先计算表达式值,若为真则执行语句先计算表达式值,若为真则执行语句先计算表达式值,若为真则执行语句先计算表达式值,若为真则执行语句1 1 1 1,否则执行语句,否则执行语句,否则执行语句,否则执行语句2 2 2 2 语句语句语句语句1 1 1 1与语句与语句与语句与语句2 2 2 2可以为复合语句可以为复合语句可以为复合语句可以为复合语句 语句语句语句语句1 1 1 1与语句

11、与语句与语句与语句2 2 2 2只能有一个被执行只能有一个被执行只能有一个被执行只能有一个被执行 如果仅仅用于确定某条语句是否执行,如果仅仅用于确定某条语句是否执行,如果仅仅用于确定某条语句是否执行,如果仅仅用于确定某条语句是否执行,elseelseelseelse分支可以省略分支可以省略分支可以省略分支可以省略第6页,本讲稿共40页if-else 语句示例一 输入一个字符,判断它是否为输入一个字符,判断它是否为输入一个字符,判断它是否为输入一个字符,判断它是否为09090909之间的数字之间的数字之间的数字之间的数字#include include int int mainmain()()c

12、har char c c;printf printf(“Input a character:”);(“Input a character:”);c c=getchargetchar();();if if(c c=48&=48&c c=57)=57)printf printf(“It is a number.(“It is a number.n n”);”);elseelse printf printf(“No,it is not a number.(“No,it is not a number.n n”);”);return 0;return 0;因:字符以因:字符以因:字符以因:字符以ASC

13、IIASCIIASCIIASCII码值存储码值存储码值存储码值存储且数字的且数字的且数字的且数字的ASCIIASCIIASCIIASCII码值码值码值码值4857485748574857故:比较故:比较故:比较故:比较ASCIIASCIIASCIIASCII码值码值码值码值第7页,本讲稿共40页if-else 语句示例二 输入一个整数,输出其绝对值输入一个整数,输出其绝对值输入一个整数,输出其绝对值输入一个整数,输出其绝对值#include include int int mainmain()()int int n n,absabs;printf printf(“Enter integer:”

14、);(“Enter integer:”);scanfscanf(“%(“%d d”,&”,&n n););absabs=n n;if if(absabs 0)0)abs abs=absabs;printf printf(“Original integer:%(“Original integer:%d d,absolute value:%,absolute value:%d d n n”,”,n n,absabs););return 0;return 0;第8页,本讲稿共40页if-else if-else 语句语句格式语句格式 if(if(表达式表达式表达式表达式1)1)语句语句语句语句1 e

15、lse if(1 else if(表达式表达式表达式表达式2)2)语句语句语句语句2 else 2 else 语句语句语句语句n n第9页,本讲稿共40页if-else if-else 示例 根据百分制成绩给出优秀、通过或不通过成绩根据百分制成绩给出优秀、通过或不通过成绩根据百分制成绩给出优秀、通过或不通过成绩根据百分制成绩给出优秀、通过或不通过成绩#include#include int int mainmain()()float float scorescore;printfprintf(“Input score:“);(“Input score:“);scanfscanf(“%(“%f

16、f“,&“,&scorescore););if if(scorescore=85&=85&scorescore=100)=60&=60&scorescore 85)=0&=0&scorescore 60)50)50)if(if(salsal 500)50)50)if(if(salsal 500)50)50)if(if(salsal 500)500)salsal+=200;+=200;elseelse salsal+=300;+=300;第11页,本讲稿共40页条件分支嵌套示例求方程求方程 ax2+bx+c=0 的根的根#include#include#include#include /由于用到

17、平方根函数,要用此头文件由于用到平方根函数,要用此头文件由于用到平方根函数,要用此头文件由于用到平方根函数,要用此头文件int int mainmain()()float float a a,b b,c c,x1x1,x2x2,p p,q q,mm;/定义实型变量定义实型变量定义实型变量定义实型变量 printfprintf(“Enter 3 coefficients:“);(“Enter 3 coefficients:“);scanfscanf(“%(“%f f,%,%f f,%,%f f“,&“,&a a,&,&b b,&,&c c););/从键盘读入方程的三个系数从键盘读入方程的三个系数

18、从键盘读入方程的三个系数从键盘读入方程的三个系数 if if(a a=0.0&=0.0&b b=0&=0&c c=0)=0)/分支分支分支分支1 1:三个系数全为:三个系数全为:三个系数全为:三个系数全为0 0 printfprintf(“any value(“any valuen n“);“);elseelse if if(a=0&b!=0)(a=0&b!=0)/分支分支分支分支2 2:系数:系数:系数:系数a a为为为为0 0,解一元一次方程,解一元一次方程,解一元一次方程,解一元一次方程 printfprintf(“x1=x2=%(“x1=x2=%f f n n,c c/b b););e

19、lseelse /分支分支分支分支3 3:解一元二次方程的两个根:解一元二次方程的两个根:解一元二次方程的两个根:解一元二次方程的两个根 mm=b b*b b 4.0*4.0*a a*c c;第12页,本讲稿共40页条件分支嵌套示例 if if(mm=0)=0)/解实根解实根解实根解实根 x1x1=(=(b b+sqrtsqrt(mm)/(2.0*)/(2.0*a a););x2x2=(=(b b sqrtsqrt(mm)/(2.0*)/(2.0*a a););printfprintf(“x1=%(“x1=%f f n n“,“,x1x1););/输出两个实根输出两个实根输出两个实根输出两个实

20、根 printfprintf(“x2=%(“x2=%f f n n“,“,x2x2););elseelse /解虚根解虚根解虚根解虚根 p p=b b/(2.0*/(2.0*a a););q q=sqrtsqrt(mm)/(2.0*)/(2.0*a a););printfprintf(“x1=%(“x1=%f f+%+%f fi in n“,“,p p,q q););printfprintf(“x2=%(“x2=%f f%f fi in n“,“,p p,q q););return 0;return 0;第13页,本讲稿共40页switch 分支语法 计算过程计算过程计算过程计算过程 先计算表

21、达式的值先计算表达式的值先计算表达式的值先计算表达式的值 依次与一组常量比较依次与一组常量比较依次与一组常量比较依次与一组常量比较 若相同则执行该分支若相同则执行该分支若相同则执行该分支若相同则执行该分支 否则转向否则转向否则转向否则转向defaultdefaultdefaultdefault分支分支分支分支 退出退出退出退出switchswitchswitchswitch语句语句语句语句 说明说明说明说明 switchswitchswitchswitch后面的表达式必须为整型、字符型或枚举型后面的表达式必须为整型、字符型或枚举型后面的表达式必须为整型、字符型或枚举型后面的表达式必须为整型、字

22、符型或枚举型 casecasecasecase后面必须为常量表达式,则各个后面必须为常量表达式,则各个后面必须为常量表达式,则各个后面必须为常量表达式,则各个casecasecasecase值必须不同值必须不同值必须不同值必须不同 如果没有如果没有如果没有如果没有defaultdefaultdefaultdefault子句,且没有子句,且没有子句,且没有子句,且没有casecasecasecase子句匹配,则不执行子句匹配,则不执行子句匹配,则不执行子句匹配,则不执行 casecasecasecase分支中的语句可以有多条,不需要花括号分支中的语句可以有多条,不需要花括号分支中的语句可以有多条

23、,不需要花括号分支中的语句可以有多条,不需要花括号switch(switch(表达式表达式表达式表达式)case case 常量表达式常量表达式常量表达式常量表达式1:1:语句组语句组语句组语句组1 1 case case 常量表达式常量表达式常量表达式常量表达式2:2:语句组语句组语句组语句组2 2 case case 常量表达式常量表达式常量表达式常量表达式n n:语句组语句组语句组语句组n n default:default:语句组语句组语句组语句组 第14页,本讲稿共40页switch 分支流程图第15页,本讲稿共40页switch 分支示例一根据输入的成绩等级,打印相应分数段根据输入

24、的成绩等级,打印相应分数段#include#include int int mainmain()()char char gradegrade;printfprintf(“Input the grade(A,B,C,D,E):“);(“Input the grade(A,B,C,D,E):“);scanfscanf(“%(“%c c“,&“,&gradegrade););switch(switch(grade grade)case A:case A:printfprintf(“90-100(“90-100n n“);“);breakbreak;case B:case B:printfprintf

25、(“80-89(“80-89n n“);“);breakbreak;case C:case C:printfprintf(“70-79(“70-79n n“);“);breakbreak;case D:case D:printfprintf(“60-69(“60-69n n“);“);breakbreak;case E:case E:printfprintf(“0-59(“0-59n n“);“);breakbreak;default:default:printfprintf(“Error(“Errorn n“);“);return 0;return 0;第16页,本讲稿共40页switch

26、分支示例一根据输入的成绩等级,打印相应分数段根据输入的成绩等级,打印相应分数段#include#include int int mainmain()()char char gradegrade;printfprintf(“Input the grade(A,B,C,D,E):“);(“Input the grade(A,B,C,D,E):“);scanfscanf(“%(“%c c“,&“,&gradegrade););switch(switch(grade grade)case A:case A:printfprintf(“90-100(“90-100n n“);“);case B:case

27、 B:printfprintf(“80-89(“80-89n n“);“);case C:case C:printfprintf(“70-79(“70-79n n“);“);case D:case D:printfprintf(“60-69(“60-69n n“);“);case E:case E:printfprintf(“0-59(“0-59n n“);“);default:default:printfprintf(“Error(“Errorn n“);“);return 0;return 0;breakbreak的目的是终止的目的是终止的目的是终止的目的是终止switchswitch语句

28、的语句的语句的语句的执行。如果没有执行。如果没有执行。如果没有执行。如果没有breakbreak语句,则程语句,则程语句,则程语句,则程序会从指定的序会从指定的序会从指定的序会从指定的casecase分支开始,并在分支开始,并在分支开始,并在分支开始,并在该分支结束后继续执行下去。除非该分支结束后继续执行下去。除非该分支结束后继续执行下去。除非该分支结束后继续执行下去。除非switchswitch语句结束,后面的其他语句结束,后面的其他语句结束,后面的其他语句结束,后面的其他casecase分支或分支或分支或分支或defaultdefault分支中的语句都会得分支中的语句都会得分支中的语句都会

29、得分支中的语句都会得到执行到执行到执行到执行第17页,本讲稿共40页switch 分支示例二根据输入的成绩等级,打印是否通过信息根据输入的成绩等级,打印是否通过信息#include#include int int mainmain()()char char gradegrade;printfprintf(“Input the grade(A,B,C,D,E):“);(“Input the grade(A,B,C,D,E):“);scanfscanf(“%(“%c c“,&“,&gradegrade););switch(switch(grade grade)case A:case A:case

30、B:case B:case C:case C:case D:case D:printfprintf(“Pass(“Passn n“);break;“);break;case E:case E:printfprintf(“Fail(“Failn n“);break;“);break;default:default:printfprintf(“Error(“Errorn n“);“);return 0;return 0;如果逻辑上确实如此,则不如果逻辑上确实如此,则不如果逻辑上确实如此,则不如果逻辑上确实如此,则不同的同的同的同的casecase分支可以使用同一分支可以使用同一分支可以使用同一分支

31、可以使用同一个语句组,这也许是特意不个语句组,这也许是特意不个语句组,这也许是特意不个语句组,这也许是特意不在某些在某些在某些在某些casecase分支中使用分支中使用分支中使用分支中使用breakbreak的唯一正当理由的唯一正当理由的唯一正当理由的唯一正当理由第18页,本讲稿共40页3.4 循环结构 循环结构的含义循环结构的含义循环结构的含义循环结构的含义 根据某一条件的判断结果,反复执行某一处理块的过程根据某一条件的判断结果,反复执行某一处理块的过程根据某一条件的判断结果,反复执行某一处理块的过程根据某一条件的判断结果,反复执行某一处理块的过程 最基本的循环结构是当循环最基本的循环结构是

32、当循环最基本的循环结构是当循环最基本的循环结构是当循环 进入循环结构,判断循环条件,如果循环条件的结果为进入循环结构,判断循环条件,如果循环条件的结果为进入循环结构,判断循环条件,如果循环条件的结果为进入循环结构,判断循环条件,如果循环条件的结果为真,则执行真,则执行真,则执行真,则执行A A处理块的操作,即循环一次,然后再次判断处理块的操作,即循环一次,然后再次判断处理块的操作,即循环一次,然后再次判断处理块的操作,即循环一次,然后再次判断循环条件,当循环条件为假时,循环结束循环条件,当循环条件为假时,循环结束循环条件,当循环条件为假时,循环结束循环条件,当循环条件为假时,循环结束第19页,

33、本讲稿共40页while 循环 while while while while 循环格式:循环格式:循环格式:循环格式:while(while(表达式表达式表达式表达式)循环体循环体循环体循环体 while while while while 循环流程循环流程循环流程循环流程 先判断后执行:表达式为真时,执行一遍循环体(一次迭代),先判断后执行:表达式为真时,执行一遍循环体(一次迭代),先判断后执行:表达式为真时,执行一遍循环体(一次迭代),先判断后执行:表达式为真时,执行一遍循环体(一次迭代),返回重新计算表达式的值以确定是否重复执行循环体;若表达返回重新计算表达式的值以确定是否重复执行循环

34、体;若表达返回重新计算表达式的值以确定是否重复执行循环体;若表达返回重新计算表达式的值以确定是否重复执行循环体;若表达式为假,则终止循环式为假,则终止循环式为假,则终止循环式为假,则终止循环 为保证循环终止,循环体内应有能改变表达式值的语句为保证循环终止,循环体内应有能改变表达式值的语句为保证循环终止,循环体内应有能改变表达式值的语句为保证循环终止,循环体内应有能改变表达式值的语句第20页,本讲稿共40页while 循环示例使用使用 while while 循环求两个正整数的最小公倍数循环求两个正整数的最小公倍数#include#include int int mainmain()()int

35、int mm,n n,resultresult;printfprintf(“Input two positive integers m,n:“);(“Input two positive integers m,n:“);scanfscanf(“%(“%d d,%,%d d“,&“,&mm,&,&n n););if(if(m m 0&0&n n 0)0)resultresult=mm n n?n n:mm;while(while(resultresult%mm!=0|!=0|resultresult%n n!=0)!=0)resultresult+;+;printfprintf(“The lea

36、st common multiple of m and n is%(“The least common multiple of m and n is%d d.n n“,“,resultresult););else else printfprintf(“the number m or n is not a positive integer.(“the number m or n is not a positive integer.n n“);“);return 0;return 0;第21页,本讲稿共40页do-while 循环 do-while do-while do-while do-whi

37、le 循环格式:循环格式:循环格式:循环格式:do do 循环体循环体循环体循环体 while(while(表达式表达式表达式表达式););do-while do-while do-while do-while 循环流程循环流程循环流程循环流程 先执行后判断:先执行一遍循环体(一次迭代),计算表达式的值,先执行后判断:先执行一遍循环体(一次迭代),计算表达式的值,先执行后判断:先执行一遍循环体(一次迭代),计算表达式的值,先执行后判断:先执行一遍循环体(一次迭代),计算表达式的值,表达式为真时重复执行循环体,否则终止循环(循环体至少执行一表达式为真时重复执行循环体,否则终止循环(循环体至少执行

38、一表达式为真时重复执行循环体,否则终止循环(循环体至少执行一表达式为真时重复执行循环体,否则终止循环(循环体至少执行一次,这与次,这与次,这与次,这与whilewhilewhilewhile循环不同)循环不同)循环不同)循环不同)为保证循环终止,循环体内应有能改变表达式值的语句为保证循环终止,循环体内应有能改变表达式值的语句为保证循环终止,循环体内应有能改变表达式值的语句为保证循环终止,循环体内应有能改变表达式值的语句第22页,本讲稿共40页do-while 循环示例 反复求两个正整数的最小公倍数,直到输入的两个数反复求两个正整数的最小公倍数,直到输入的两个数反复求两个正整数的最小公倍数,直到

39、输入的两个数反复求两个正整数的最小公倍数,直到输入的两个数均为均为均为均为1 1 1 1时结束时结束时结束时结束#include#include int int mainmain()()int int mm,n n,resultresult;dodo printfprintf(“Input two positive integers m,n:“);(“Input two positive integers m,n:“);scanfscanf(“%(“%d d,%,%d d“,&“,&mm,&,&n n););if(if(m m 0&0&n n 0)0)resultresult=mm n n?n

40、 n:mm;while(while(resultresult%mm!=0|!=0|resultresult%n n!=0)!=0)resultresult+;+;printfprintf(“The least common multiple of m and n is%(“The least common multiple of m and n is%d d.n n“,“,resultresult););else else printfprintf(“the number m or n is not a positive integer.(“the number m or n is not a

41、 positive integer.n n“);“);while(while(mm!=1|!=1|n n!=1);!=1);return 0;return 0;第23页,本讲稿共40页for 循环 for for for for 循环格式循环格式循环格式循环格式 for(for(表达式表达式表达式表达式1;1;表达式表达式表达式表达式2;2;表达式表达式表达式表达式3)3)循环体循环体循环体循环体 for for for for 循环流程循环流程循环流程循环流程 先判断后执行:先执行表达式先判断后执行:先执行表达式先判断后执行:先执行表达式先判断后执行:先执行表达式1 1 1 1(循环初始化)

42、,再计算表达式(循环初始化),再计算表达式(循环初始化),再计算表达式(循环初始化),再计算表达式2 2 2 2以根据其结果决定是否执行一遍循环体(为真时执行),以根据其结果决定是否执行一遍循环体(为真时执行),以根据其结果决定是否执行一遍循环体(为真时执行),以根据其结果决定是否执行一遍循环体(为真时执行),计算表达式计算表达式计算表达式计算表达式3 3 3 3的值(循环再次的值(循环再次的值(循环再次的值(循环再次“初始化初始化初始化初始化”),返回重新计算表达式),返回重新计算表达式),返回重新计算表达式),返回重新计算表达式2 2 2 2的值以确定循环是否终止的值以确定循环是否终止的值

43、以确定循环是否终止的值以确定循环是否终止第24页,本讲稿共40页for 循环示例一计算计算#include#include int int mainmain()()int int resultresult,k k;resultresult=0;=0;/累加器变量,设置初始值(本例设为累加器变量,设置初始值(本例设为累加器变量,设置初始值(本例设为累加器变量,设置初始值(本例设为0 0)for(for(k k=1;=1;k k=100;=100;k k+)+)/循环计算循环计算循环计算循环计算 resultresult+=+=k k*k k;/;/累加累加累加累加 printfprintf(“T

44、he result:%(“The result:%d d n n“,“,resultresult););return 0;return 0;第25页,本讲稿共40页三种循环结构的比较 三种循环结构可以互换使用三种循环结构可以互换使用三种循环结构可以互换使用三种循环结构可以互换使用 for for for for 循环与循环与循环与循环与 while while while while 循环常见,循环常见,循环常见,循环常见,do-while do-while do-while do-while 循环少见循环少见循环少见循环少见 while while while while 循环常用于不需要或

45、很少需要初始化的场合循环常用于不需要或很少需要初始化的场合循环常用于不需要或很少需要初始化的场合循环常用于不需要或很少需要初始化的场合 for for for for 循环常用于需要简单初始化和通过递增递减运算控循环常用于需要简单初始化和通过递增递减运算控循环常用于需要简单初始化和通过递增递减运算控循环常用于需要简单初始化和通过递增递减运算控制循环体执行的场合制循环体执行的场合制循环体执行的场合制循环体执行的场合 for for for for 循环将所有循环控制因素都放在循环头部,循环结构循环将所有循环控制因素都放在循环头部,循环结构循环将所有循环控制因素都放在循环头部,循环结构循环将所有循

46、环控制因素都放在循环头部,循环结构最清晰最清晰最清晰最清晰 通过省略循环头部的一个或多个表达式,通过省略循环头部的一个或多个表达式,通过省略循环头部的一个或多个表达式,通过省略循环头部的一个或多个表达式,for for for for 循环也可能非循环也可能非循环也可能非循环也可能非常复杂常复杂常复杂常复杂第26页,本讲稿共40页for 循环示例二 程序读入一个字符串,然后反向打印输出程序读入一个字符串,然后反向打印输出程序读入一个字符串,然后反向打印输出程序读入一个字符串,然后反向打印输出#include#include#include#include int int mainmain()(

47、)char char s s50,50,c c;int int i i,j j;printfprintf(“Input a string:“);(“Input a string:“);scanfscanf(“%(“%s s“,“,s s););for(for(i i=0,=0,j j=strlenstrlen(s s)1;)1;i i j j;i i+,+,j j)c c=s s i i;s s i i=s s j j;s s j j=c c;printfprintf(“%(“%s s n n“,“,s s););return 0;return 0;第27页,本讲稿共40页for 循环示例三

48、打印九九乘法表打印九九乘法表打印九九乘法表打印九九乘法表#include#include int int mainmain()()int int i i,j j,k k;for(for(i i=1;=1;i i=9;=9;i i+)+)for(for(j j=i i;j j=9;=9;j j+)+)k k=i i*j j;printfprintf(“%(“%d d%d d=%=%d d t t“,“,i i,j j,k k););printfprintf(“(“n n“);“);return 0;return 0;如果一个循环体内包含另一个循环则如果一个循环体内包含另一个循环则如果一个循环体内

49、包含另一个循环则如果一个循环体内包含另一个循环则称循环嵌套或多重循环称循环嵌套或多重循环称循环嵌套或多重循环称循环嵌套或多重循环三种循环都可以嵌套,但嵌套时内外三种循环都可以嵌套,但嵌套时内外三种循环都可以嵌套,但嵌套时内外三种循环都可以嵌套,但嵌套时内外层循环不能发生交叉层循环不能发生交叉层循环不能发生交叉层循环不能发生交叉发生嵌套时,内层循环经常需要使用发生嵌套时,内层循环经常需要使用发生嵌套时,内层循环经常需要使用发生嵌套时,内层循环经常需要使用外层循环的某些值作为控制条件外层循环的某些值作为控制条件外层循环的某些值作为控制条件外层循环的某些值作为控制条件第28页,本讲稿共40页循环控制

50、转移:break 语句 输出输出输出输出5 5 5 5行、每行行、每行行、每行行、每行10101010个随机数,若随机数大于个随机数,若随机数大于个随机数,若随机数大于个随机数,若随机数大于20,00020,00020,00020,000,本,本,本,本行输出结束行输出结束行输出结束行输出结束#include#include#include#include#include#include int int mainmain()()int int i i,j j,r r;srandsrand(timetime(NULLNULL););for(for(i i=1;=1;i i=5;=5;i i+)+

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

当前位置:首页 > 生活休闲 > 资格考试

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

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