《控制程序流程》PPT课件.pptx

上传人:wuy****n92 文档编号:71670253 上传时间:2023-02-04 格式:PPTX 页数:40 大小:494.21KB
返回 下载 相关 举报
《控制程序流程》PPT课件.pptx_第1页
第1页 / 共40页
《控制程序流程》PPT课件.pptx_第2页
第2页 / 共40页
点击查看更多>>
资源描述

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

1、第第0404章控制程序流程章控制程序流程-2-本章内容安排本章内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch-3-循循环的概念的概念&计算机擅长的工作之一是重复做相同的事情。计算机擅长的工作之一是重复做相同的事情。&许多编程任务可以通过重复相同的操作来完成,许多编程任务可以通过重复相同的操作来完成,通过指定次数或设定条件来控制执行过程。多次重通过指定次数或设定条件来控制执行过程。多次重复执行的结构称为复执行的结构称为循环循环,每一次循环称为,每一次循环称为迭代迭代。&whilewhile、dowhi

2、ledowhile、forfor-4-while循循环&在指定条件为在指定条件为truetrue的情况下,程序重复执行,直的情况下,程序重复执行,直到指定条件变为到指定条件变为falsefalse。&条件放在条件放在whilewhile之后的()内,循环执行的语句放之后的()内,循环执行的语句放在一对内。在一对内。表达式表达式表达式表达式F F F F循环体语句循环体语句循环体语句循环体语句T T T Twhile(表达式)循环体语句;-5-显示示099#include int main()int x=0;while(x100)std:cout x ;x+;return 0;p假如循环语句中没

3、有假如循环语句中没有x+x+,则,则whilewhile循环循环 的条件永远为真,导致循环一直执行,的条件永远为真,导致循环一直执行,称为无限循环或死循环。称为无限循环或死循环。-6-显示示500以内以内13的倍数的倍数#include int main()int counter=0;while(counter500)counter+;if(counter%13=0)std:coutcounter;return 0;-7-显示前示前20个整除个整除14的正整数的正整数#include int main()int counter=0,multiples=0;while(true)counter+

4、;if(counter%14=0)std:coutcounter19)break;return 0;p循环中让循环中让whilewhile的条件为的条件为truetrue,构,构 造造1 1个无限循环。个无限循环。p在循环体内,调用在循环体内,调用breakbreak语句,可语句,可 立即停止循环的执行。立即停止循环的执行。p使用使用while(true)while(true)结构时,要确结构时,要确 保循环能够停止。保循环能够停止。-8-显示前示前20个整除个整除15的正整数的正整数#include int main()int counter=0,multiples=0;while(mult

5、iples19)counter+;if(counter%15!=0)continue;std:coutcounter;multiples+;return 0;p在循环中遇到在循环中遇到continuecontinue语句,将语句,将 跳过余下的语句,执行下一次跳过余下的语句,执行下一次 迭代。迭代。pbreakbreak结束当前循环,而结束当前循环,而continuecontinue 结束本次迭代。结束本次迭代。-9-本章内容安排本章内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch-10-dowhil

6、e循循环&whilewhile在执行循环前检查条件,如果此时条件为在执行循环前检查条件,如果此时条件为falsefalse,则一次循环也不执行。,则一次循环也不执行。&dowhiledowhile在循环之后检查条件,条件为在循环之后检查条件,条件为truetrue,继,继续循环,条件为续循环,条件为falsefalse结束循环。结束循环。do 循环体语句;while(表达式);表达式表达式F循环体语句循环体语句T-11-重复重复显示示单词指定次数指定次数#include int main()int badger;std:coutbadger;do std:cout0);std:coutn;re

7、turn 0;p不要遗漏语句最后的;号。不要遗漏语句最后的;号。p无论条件如何设置,无论条件如何设置,dodowhilewhile循循 至少执行至少执行1 1次。次。pbreakbreak和和continuecontinue仍然有效。仍然有效。-12-本章内容安排本章内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch-13-for循循环&forfor循环将设置计数变量初值、检查条件、修改计循环将设置计数变量初值、检查条件、修改计数变量合并到数变量合并到1 1条语句中。条语句中。for(表达式1;表达式2

8、;表达式3)循环体;表达式表达式表达式表达式2 2 2 2F F F F表达式表达式表达式表达式3 3 3 3表达式表达式表达式表达式1 1 1 1循环体语句循环体语句循环体语句循环体语句T T T T计算算1100的和的和#include int main()int i,sum=0;for(i=1;i=100;i+)sum+=i;std:cout“Sum:“sum“n”;return 0;p表达式表达式1 1:完成计数变量初始化。:完成计数变量初始化。p表达式表达式2 2:检查条件,确定是否:检查条件,确定是否 继续执行循环。继续执行循环。p表达式表达式3 3:修改计数变量的值。:修改计数变

9、量的值。p3 3个表达式之间用分号分割。个表达式之间用分号分割。-14-15-本章本章内容安排内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitch1、for的的变化化形式形式1#include int main()int i,sum;for(i=1,sum=0;i=100;i+)sum=sum+i;std:cout“Sum:“sum“n”;return 0;p初始化多个变量时,用逗号进行初始化多个变量时,用逗号进行 分割。分割。-16-for的的变化化形式形式2#include int main()int

10、 i=1,sum=0;for(;i=100;i+)sum=sum+i;std:cout“Sum:“sum“n”;return 0;p3 3个表达式中的任意个表达式中的任意1 1个可以为空,个可以为空,但对应的分号不能省略。但对应的分号不能省略。-17-for的的变化化形式形式3#include int main()int i=1,sum=0;for(;i=100;)sum=sum+i;i+;std:cout“Sum:“sum“n”;return 0;p将表达式将表达式3 3转移到循环体内部,已转移到循环体内部,已 经退化为经退化为whilewhile循环。循环。-18-for的的变化化形式形式

11、4#include int main()int i=1,sum=0;for(;)sum=sum+i;if(i=100)break;i+;std:cout“Sum:“sum“n”;return 0;p将将3 3个表达式全部移出,退化为个表达式全部移出,退化为 while(true)while(true)结构。结构。-19-for的的变化形式化形式5#include int main()int i=1,sum=0;for(i=1;i=100;sum=sum+i,i+);std:cout“Sum:“sum“n”;return 0;p将循环体内的语句转移到某个表达式中,将循环体内的语句转移到某个表达式

12、中,不提倡这种用法。不提倡这种用法。-20-2、循、循环的典型的典型问题#include int main()int i,sum=0;for(i=1;i=100;i+);sum+=i;std:cout“Sum:“sum“n”;return 0;p此时的此时的forfor循环,执行了循环,执行了100100次空次空 语句(;)。语句(;)。-21-循循环的典型的典型错误#include int main()int i=1,sum=0;for(;i=100;)sum=sum+i;i+;std:cout“Sum:“sum“n”;return 0;p循环执行循环执行sum=sum+isum=sum+i

13、,而不会执行,而不会执行 i+i+,导致死循环。,导致死循环。p养成将循环语句放在养成将循环语句放在 内作为复内作为复 语句的良好习惯,不管是否只有语句的良好习惯,不管是否只有 1 1条语句。条语句。-22-循循环的典型的典型错误#include int main()int i=1,sum=0;while(i=100);sum+=i;i+;std:cout“Sum:“sum“n”;return 0;pwhilewhile循环后面不能加分号,否则循环后面不能加分号,否则 while while一直执行空语句,导致一直执行空语句,导致i i无无 法递增,死循环。法递增,死循环。-23-24-3、循

14、、循环的嵌套的嵌套&在循环体内,可以包含另一个循环,从而构成循在循环体内,可以包含另一个循环,从而构成循环的嵌套。环的嵌套。&外部循环每次迭代时,内部循环都将完整循环外部循环每次迭代时,内部循环都将完整循环1 1次次输出字符矩形出字符矩形#include int main()int rows,columns;char character;std:coutrows;std:coutcolumns;std:coutcharacter;std:coutn;-25-输出字符矩形出字符矩形#include int main()for(int i=0;irows;i+)for(int j=0;jcolum

15、ns;j+)std:coutcharacter;std:coutn;return 0;-26-马克思手稿中的数学克思手稿中的数学问题&共有共有3030个人,其中有男人、女人和小孩,他们在个人,其中有男人、女人和小孩,他们在一家饭馆吃饭共花费了一家饭馆吃饭共花费了5050先令,其中每个男人花费先令,其中每个男人花费3 3先令,每个女人花费先令,每个女人花费2 2先令,每个小孩各花先令,每个小孩各花1 1先令,先令,问问3030个人中男人、女人和小孩各几人?个人中男人、女人和小孩各几人?&设男人、女人和小孩的人数各为设男人、女人和小孩的人数各为x x、y y、z z,则通过,则通过题意可以列出下面

16、的方程。题意可以列出下面的方程。x+y+z=30 x+y+z=303x+2y+z=503x+2y+z=50-27-穷举法法&通过两个方程解通过两个方程解3 3个未知数,这是一个不定方程,个未知数,这是一个不定方程,应该有多组解,用代数方法很难求解。应该有多组解,用代数方法很难求解。&利用计算机编写程序,通过利用计算机编写程序,通过“穷举法穷举法”可以可以列举列举出所有可能的解出所有可能的解。所谓。所谓“穷举法穷举法”,就是让计算机,就是让计算机根据所有可能的情况,逐一去验证,从而找出所有根据所有可能的情况,逐一去验证,从而找出所有满足要求的满足要求的“解解”。&由于总人数为由于总人数为3030

17、人,所以人,所以x x、y y和和z z的取值范围一定的取值范围一定为为030030并且为整数并且为整数,在编程时,我们可以让,在编程时,我们可以让x x、y y和和z z都从都从0 0循环到循环到3030,然后验证看哪个组合能满足方然后验证看哪个组合能满足方程式。程式。-28-三三重循重循环求解求解int main()int x,y,z;std:coutMan t Women t Childrenn“;for(x=0;x=30;x+)for(y=0;y=30;y+)for(z=0;z=30;z+)if(x+y+z=30&3*x+2*y+z=50)std:coutx“t”y“t”z“n”;re

18、turn 0;p“t”“t”表示制表符。表示制表符。p分析:循环体执行分析:循环体执行313131313131,循环时,循环时x x、y y 确定后,确定后,z z就会确定,不需要再循环。此外,就会确定,不需要再循环。此外,每种人的循环范围不一定都是每种人的循环范围不一定都是3030。-29-缩小小穷举范范围int main()int x,y,z;std:coutMan t Women t Childrenn“;for(x=0;x=16;x+)for(y=0;y=25;y+)for(z=0;z=30;z+)if(x+y+z=30&3*x+2*y+z=50)std:coutx“t”y“t”z“n

19、”;return 0;-30-2重循重循环int main()int x,y,z;std:coutMan t Women t Childrenn“;for(x=0;x=16;x+)for(y=0;y=25;y+)z=30 x y;if(3*x+2*y+z=50)std:coutx“t”y“t”z“n”;return 0;p某一次循环迭代中,某一次循环迭代中,x x和和y y确定后,确定后,z z便可以便可以 计算得出,渐少了循环的次数。计算得出,渐少了循环的次数。-31-1重循重循环的的尝试&采用消元法,消去变量采用消元法,消去变量z z,得到新的方程式,得到新的方程式2x+y=202x+y=

20、20&对于这一方程式,我们可以采用一重循环来穷举对于这一方程式,我们可以采用一重循环来穷举x x的所有可能,即的所有可能,即x x从从0 0变到变到1616,但只要,但只要x x确定下来,确定下来,y y便可以通过方程式来确定,便可以通过方程式来确定,x x和和y y确定下来,则确定下来,则z z可以由可以由x+y+z=30 x+y+z=30确定。确定。-32-1重循重循环(小(小Bug)int main()int x,y,z;std:coutMan t Women t Childrenn“;for(x=0;x=16;x+)y=20-2*x;z=30-x-y;if(3*x+2*y+z=50)s

21、td:coutx“t”y“t”z“n”;return 0;-33-1重循重循环int main()int x,y,z;std:coutMan t Women t Childrenn“;for(x=0;x=0&z=0)std:coutx“t”y“t”z“n”;return 0;-34-35-本章本章内容安排内容安排&whilewhile循环循环&dowhiledowhile循环循环&forfor循环循环&高级循环高级循环&switchswitchswitch的的动机机&对同一个变量,若存在多个分支判断情况,使用对同一个变量,若存在多个分支判断情况,使用嵌套的嵌套的if if语句,将导致代码非常烦

22、琐混乱,不易理语句,将导致代码非常烦琐混乱,不易理解且难以维护。解且难以维护。&switchswitch语句,检查表达式,根据结果匹配执行多语句,检查表达式,根据结果匹配执行多个代码块中的个代码块中的1 1个。个。-36-switch的基本的基本结构构switch(switch(表达式表达式)case case 常量常量1:1:语句语句1;break;1;break;case case 常量常量2:2:语句语句2;break;2;break;case case 常量常量n:n:语句语句n;break;n;break;default:default:语句语句n+1;n+1;pswitchswit

23、ch的表达式必须是一个整数值。的表达式必须是一个整数值。pcasecase分支后必须为常量,不能是变分支后必须为常量,不能是变 量或者表达式,分支间不允许重复。量或者表达式,分支间不允许重复。pswitchswitch语句执行时,若匹配到某个语句执行时,若匹配到某个 case case,执行后面的语句;若没有匹,执行后面的语句;若没有匹 配的配的casecase,执行,执行defaultdefault部分。部分。p通常每个通常每个casecase分支,都应该有分支,都应该有breakbreak 语句,用于退出语句,用于退出switchswitch。若某个。若某个 case case没有没有br

24、eakbreak,当前分支执行完,当前分支执行完 后,继续下一个后,继续下一个casecase分支。分支。p良好编程习惯:保留良好编程习惯:保留defaultdefault,处理,处理 特殊情况。特殊情况。-37-等等级分分转百分制百分制#include int main()char grade;int score;std:coutgrade;return 0;-38-等等级分分转百分制百分制switch(grade)case A:score=95;break;case B:score=85;break;case C:score=75;break;case D:score=65;break;d

25、efault:std:cout“Its not even a grade!n”;std:cout“Your score is:“score“n”;pcasecase之后必须为整数或字符常量。之后必须为整数或字符常量。-39-等等级分分转百分制:考百分制:考虑小写字母小写字母switch(grade)case A:case a:score=95;break;case B:case b:score=85;break;case C:case c:score=75;break;case D:case d:score=65;break;default:std:cout“Its not even a grade!n”;-40-

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

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

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

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