欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

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

    • 资源ID:5516485       资源大小:527KB        全文页数:40页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    第04章控制程序流程,-2-,本章内容安排,while循环dowhile循环for循环高级循环switch,-3-,循环的概念,计算机擅长的工作之一是重复做相同的事情。许多编程任务可以通过重复相同的操作来完成,通过指定次数或设定条件来控制执行过程。多次重复执行的结构称为循环,每一次循环称为迭代。while、dowhile、for,-4-,while循环,在指定条件为true的情况下,程序重复执行,直到指定条件变为false。条件放在while之后的()内,循环执行的语句放在一对内。,while(表达式)循环体语句;,-5-,显示099,#include int main()int x=0;while(x100)std:cout x“”;x+;return 0;,假如循环语句中没有x+,则while循环 的条件永远为真,导致循环一直执行,称为无限循环或死循环。,-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+;if(counter%14=0)std:cout19)break;return 0;,循环中让while的条件为true,构 造1个无限循环。在循环体内,调用break语句,可 立即停止循环的执行。使用while(true)结构时,要确 保循环能够停止。,-8-,显示前20个整除15的正整数,#include int main()int counter=0,multiples=0;while(multiples19)counter+;if(counter%15!=0)continue;std:coutcounter;multiples+;return 0;,在循环中遇到continue语句,将 跳过余下的语句,执行下一次 迭代。break结束当前循环,而continue 结束本次迭代。,-9-,本章内容安排,while循环dowhile循环for循环高级循环switch,-10-,dowhile循环,while在执行循环前检查条件,如果此时条件为false,则一次循环也不执行。dowhile在循环之后检查条件,条件为true,继续循环,条件为false结束循环。,do 循环体语句;while(表达式);,-11-,重复显示单词指定次数,#include int main()int badger;std:coutbadger;do std:cout0);std:coutn;return 0;,不要遗漏语句最后的;号。无论条件如何设置,dowhile循 至少执行1次。break和continue仍然有效。,-12-,本章内容安排,while循环dowhile循环for循环高级循环switch,-13-,for循环,for循环将设置计数变量初值、检查条件、修改计数变量合并到1条语句中。,for(表达式1;表达式2;表达式3)循环体;,计算1100的和,#include int main()int i,sum=0;for(i=1;i=100;i+)sum+=i;std:cout“Sum:“sum“n”;return 0;,表达式1:完成计数变量初始化。表达式2:检查条件,确定是否 继续执行循环。表达式3:修改计数变量的值。3个表达式之间用分号分割。,-15-,本章内容安排,while循环dowhile循环for循环高级循环switch,1、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;,初始化多个变量时,用逗号进行 分割。,for的变化形式2,#include int main()int i=1,sum=0;for(;i=100;i+)sum=sum+i;std:cout“Sum:“sum“n”;return 0;,3个表达式中的任意1个可以为空,但对应的分号不能省略。,for的变化形式3,#include int main()int i=1,sum=0;for(;i=100;)sum=sum+i;i+;std:cout“Sum:“sum“n”;return 0;,将表达式3转移到循环体内部,已 经退化为while循环。,for的变化形式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;,将3个表达式全部移出,退化为 while(true)结构。,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;,将循环体内的语句转移到某个表达式中,不提倡这种用法。,2、循环的典型问题,#include int main()int i,sum=0;for(i=1;i=100;i+);sum+=i;std:cout“Sum:“sum“n”;return 0;,此时的for循环,执行了100次空 语句(;)。,循环的典型错误,#include int main()int i=1,sum=0;for(;i=100;)sum=sum+i;i+;std:cout“Sum:“sum“n”;return 0;,循环执行sum=sum+i,而不会执行 i+,导致死循环。养成将循环语句放在 内作为复 语句的良好习惯,不管是否只有 1条语句。,循环的典型错误,#include int main()int i=1,sum=0;while(i=100);sum+=i;i+;std:cout“Sum:“sum“n”;return 0;,while循环后面不能加分号,否则 while一直执行空语句,导致i无 法递增,死循环。,-24-,3、循环的嵌套,在循环体内,可以包含另一个循环,从而构成循环的嵌套。外部循环每次迭代时,内部循环都将完整循环1次,输出字符矩形,#include int main()int rows,columns;char character;std:coutrows;std:coutcolumns;std:coutcharacter;std:coutn;,输出字符矩形,#include int main()for(int i=0;irows;i+)for(int j=0;jcolumns;j+)std:coutcharacter;std:coutn;return 0;,马克思手稿中的数学问题,共有30个人,其中有男人、女人和小孩,他们在一家饭馆吃饭共花费了50先令,其中每个男人花费3先令,每个女人花费2先令,每个小孩各花1先令,问30个人中男人、女人和小孩各几人?设男人、女人和小孩的人数各为x、y、z,则通过题意可以列出下面的方程。x+y+z=303x+2y+z=50,穷举法,通过两个方程解3个未知数,这是一个不定方程,应该有多组解,用代数方法很难求解。利用计算机编写程序,通过“穷举法”可以列举出所有可能的解。所谓“穷举法”,就是让计算机根据所有可能的情况,逐一去验证,从而找出所有满足要求的“解”。由于总人数为30人,所以x、y和z的取值范围一定为030并且为整数,在编程时,我们可以让x、y和z都从0循环到30,然后验证看哪个组合能满足方程式。,三重循环求解,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,“t”表示制表符。分析:循环体执行313131,循环时x、y 确定后,z就会确定,不需要再循环。此外,每种人的循环范围不一定都是30。,缩小穷举范围,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,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;,某一次循环迭代中,x和y确定后,z便可以 计算得出,渐少了循环的次数。,1重循环的尝试,采用消元法,消去变量z,得到新的方程式2x+y=20对于这一方程式,我们可以采用一重循环来穷举x的所有可能,即x从0变到16,但只要x确定下来,y便可以通过方程式来确定,x和y确定下来,则z可以由x+y+z=30确定。,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)std:coutx“t”y“t”z“n”;return 0;,1重循环,int main()int x,y,z;std:cout=0,-35-,本章内容安排,while循环dowhile循环for循环高级循环switch,switch的动机,对同一个变量,若存在多个分支判断情况,使用嵌套的if语句,将导致代码非常烦琐混乱,不易理解且难以维护。switch语句,检查表达式,根据结果匹配执行多个代码块中的1个。,switch的基本结构,switch(表达式)case 常量1:语句1;break;case 常量2:语句2;break;case 常量n:语句n;break;default:语句n+1;,switch的表达式必须是一个整数值。case分支后必须为常量,不能是变 量或者表达式,分支间不允许重复。switch语句执行时,若匹配到某个 case,执行后面的语句;若没有匹 配的case,执行default部分。,通常每个case分支,都应该有break 语句,用于退出switch。若某个 case没有break,当前分支执行完 后,继续下一个case分支。良好编程习惯:保留default,处理 特殊情况。,等级分转百分制,#include int main()char grade;int score;std:coutgrade;return 0;,等级分转百分制,switch(grade)case A:score=95;break;case B:score=85;break;case C:score=75;break;case D:score=65;break;default:std:cout“Its not even a grade!n”;std:cout“Your score is:“score“n”;,case之后必须为整数或字符常量。,等级分转百分制:考虑小写字母,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”;,

    注意事项

    本文(《控制程序流程》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开