欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第3章C++程序的流程控制.pptx

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

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

    第3章C++程序的流程控制.pptx

    第三章 程序的流程控制 语句C+语句的分类 表达式语句在C+表达式的后面加上一个分号“;”就可以构成表达式语句,其格式为:;例如:例如:a+;x=a|b&c;a+b*c;/无实际意义无实际意义a b?a:b;/无实际意义无实际意义注:表达式即可构成语句是C+的特点较常使用的表达式语句 赋值x=a+b;/赋值自增/自减x+;/自增输入/输出cin a;/输入cout b;/输出 无返回值的函数调用f(a);/函数调用复合语句复合语句是由一对花括号括起来的一一条条或多条语句,又称为分程序(block)。其格式为:中的语句可以是任何的C+语句,其中包括数据定义语句。用途:将多条语句视作一条语句。复合语句一般作为函数体和结构语句的成分语句。复合语句举例1Void max()/函数体函数体 int a,b;cin a b;int max;if(a=b)/选择语句选择语句max=a;else max=b;cout max a b;if(ab)c=a;/多条语句组成结构语句的成分语句多条语句组成结构语句的成分语句 a=b;b=c;cout“The max is”a“,The min is”b endl;选择语句作为人脑智能的替代,程序常常需要根据不同的情况来从一组语句中选择一个执行选择语句是计算机智能的实现手段选择语句包括:if语句switch语句 if 语句if语句(又称条件语句)是根据一个条件满足与否来决定是否执行某条语句或从两个语句中选择一个语句执行。if语句有两种格式:if()if()else if语句的含义第一种格式第二种格式例子:从键盘输入三个整数,计算其中的最大值并将其输出#include using namespace std;int main()int a,b,c,max;cout 请输入三个整数:请输入三个整数:a b c;if(a b)max=a;elsemax=b;if(c max)max=c;cout 最大者为:最大者为:max endl;return 0;if语句的锯齿格式为了提高程序的易读性,在写if语句时,最好采用“锯齿”格式,即把成分语句往后缩进几列。当if语句的成分语句也是if语句时,如果嵌套层次很深,“锯齿”格式将会使得程序正文严重偏向右边,从而对程序编辑、查看带来困难。为了减少文本的缩进量,可以把这样的if语句按下面的格式书写:if语句的锯齿格式 if(.).else if(.).else if(.).else if(.).else .例子:从键盘输入一个三角形的三条边,判断其为何种三角形#include using namespace std;int main()int a,b,c;cin a b c;if(a+b=c|b+c=a|c+a=b)cout 不是三角形不是三角形;else if(a=b&b=c)cout 等边三角形等边三角形;else if(a=b|b=c|c=a)cout 等腰三角形等腰三角形;(接下(接下页页)例子:从键盘输入一个三角形的三条边,判断其为何种三角形 else if(a*a+b*b=c*c|b*b+c*c=a*a|c*c+a*a=b*b)cout 直角三角形(非等腰)直角三角形(非等腰);elsecout 其它三角形其它三角形;cout endl;return 0;if 语句的歧义问题if(表达式1)if(表达式2)else 解释1if(表达式1)if(表达式2)else 解释解释2 2if(if(表达式表达式1)1)if(if(表达式表达式2)2)1 else if 语句的歧义问题C+规定:else子句与前面最近的、没有else子句的if配对。上面的if语句按解释1执行若要按解释2执行,则需要在第二个if前加上花括号,分割其与else的关系,使之独立成句:if(表达式1)if(表达式2)else P48例switch 语句程序中有时需要从两个(组)以上的语句中进入一个(组)来执行。P49 例3-7C+提供了一条多路选择语句:switch语句(又称开关语句),它能根据某个表达式的值在多组语句中进入一组语句来执行。switch语句的格式 switch()case:case:case:default:例子、从键盘输入一个星期的某一天(0:星期天;1:星期一;.),然后输出其对应的英语单词cin day;switch(day)case 0:cout Sunday;break;case 1:cout Monday;break;case 2:cout Tuesday;break;case 3:cout Wednesday;break;case 4:cout Thursday;break;case 5:cout Friday;break;case 6:cout Saturday;break;default:cout day;switch(day)case 1:case 2:case 3:case 4:case 5:cout “Working Day;break;case 6:case 0:cout “Week ends;break;default:cout Input error;P50 例3-9,p51例循环(重复)语句 电脑重复执行既准确又快速,是唯一胜过人脑的地方。找出计算过程中重复执行的操作是算法设计的核心和难点。循环语句四要素循环初始化终止条件/循环条件。重复操作步下一次循环准备循环体循环(重复)语句 循环可以分成两大类:计数控制的循环,对应于数学中向量的下标事件控制的循环,需要设计适当的结束条件C+提供了三种实现重复操作的循环语句:while语句do-while语句for语句这三种循环语句在表达能力上是等价的,在解决某个具体问题时,用其中的一种可能会比其它两种更加自然。while 语句格式:while()循环体循环体while语句例1求n!int n;cin n;int i=1,f=1;/循环初始化循环初始化while(i=n)/循环条件循环条件f*=i;/重复操作步重复操作步i+;/下一次循环准备下一次循环准备coutfactorial of n=f n;/先确定整数个数先确定整数个数int i=1,f=0;/初始化初始化while(i a;/重复操作重复操作1 f+=a;/重复操作重复操作2 i+;/下一次循环准备下一次循环准备cout sum=f endl;while语句例2若干整数求和解法解法2int a,sum=0;cout a;while(a!=-1)sum+=a;cin a;cout 输输入入的的整整数数的的和和是是:sum endl;do-while 语句do-while语句的格式如下:do while();用do-while语句求n!cin n;int i=1,f=1;/循环初始化循环初始化dof*=i;/重复操作重复操作i+;/下一次循环的准备下一次循环的准备 while(i=n);/循环条件循环条件cout factorial of n =f endl;while VS do-whileint i=1,f=1;do f*=i;i+;while(i=n);int i=1,f=1;int i=1,f=1;while(i=n)while(i=n)f*=i;f*=i;i+;i+;用用whilewhile编写的语编写的语句也可以改写为句也可以改写为do-do-whilewhile语句语句差别在于执行效率差别在于执行效率和初始值和循环条和初始值和循环条件上,没有孰优孰件上,没有孰优孰劣之别劣之别例:从键盘接收字符,直到输入字符y(Y)或n(N)为止。char ch;docout ch;ch=tolower(ch);/转为转为小写字母小写字母 while(ch!=y&ch!=n);if(ch=y).else.return 0;例:判断输入整数是否为素数 int n=1,a;/注意n的初值 cina;do n+;while(a%n!=0)&(na);if(n=a)couta是素数;else couta不是素数;计数控制和条件控制的组合例:用牛顿迭代公式 计算#include const double eps=1e-6;double a,x1,x2;couta;x1=a;do x2=x1;x1=(2*x1+a/x1/x1)/3;while(fabs(x1-x2)eps);couta“的立方根是“=”个数int count=0;/计数器char ch1=0,/上一个字符,注意初值 ch2;/当前字符cout “输入表达式,以#结束:”ch2;While(ch2!=#)/完成字符串输入 if(ch2=&ch1=)/关键 count+;ch1=ch2;cinch2;/准备下一次for 语句for(;)初始化初始化修改控制变量修改控制变量循环体循环体用for语句求n!int n,i,f;cin n;for(i=2,f=1;/循环初始化循环初始化 i=n;/循环条件循环条件 i+)/下一次循环准备下一次循环准备f*=i;/关键操作关键操作 cout factorial of n =f n;for(int fib_1=1,/前一个数前一个数 fib_2=1,/当前数当前数 i=3;ia;for(n=2;(a%n!=0)&(na);n+);if(n=a)couta是素数;else couta不是素数;若干整数求和(for语句版)int sum=0;cout a;a!=-1;cin a)sum+=a;cout输输 入入 的的 整整 数数 的的 和和 是是:sum endl;例:编程求出小于n的所有素数(循环嵌套)int n,count=0;int n,count=0;cout cout n;cin n;for(int i=2;in;i+)/for(int i=2;in;i+)/外循环,找遍所有的数外循环,找遍所有的数 int j=2;int j=2;while(j i&i%j!=0)j+;/while(j i&i%j!=0)j+;/内循环,判断内循环,判断if(j=i)/iif(j=i)/i是素数是素数 cout i ,;cout i ,;count+;count+;if(count%6=0)cout endl;if(count%6=0)cout endl;cout endl;cout endl;例:编程求出小于n的所有素数(改进版)int n,count=1;int n,count=1;cout cout n;if(n n;if(n=2)return-1;cout2 cout2,;for(int i=3;in;i+=2)/for(int i=3;in;i+=2)/跳过偶数跳过偶数 int j=2,k=sqrt(i);int j=2,k=sqrt(i);while(j=k&i%j!=0)j+;while(j k)if(j k)cout i ,;cout i ,;count+;count+;if(count%6=0)cout endl;if(count%6=0)cout endl;转移语句 除了有条件的分支语句(if和switch)外,C+还提供了无条件的分支语句:breakcontinuegoto(不提倡)return(函数中介绍)break语句 break语句的格式:break;break语句的含义有两个:结束switch语句某个分支的执行退出包含它的最内层循环语句(由于循环可以嵌套)在循环体中只要执行了break语句,就立即跳出(结束)循环,循环体中跟在break语句后面的语句将不再执行,程序继续执行当前循环之后的语句。在循环体中,break语句一般作为某个if语句的子句,用于实现进一步的循环控制。例如,判断i是否为素数的循环也可写成:j=2;k=sqrt(i);while(j=k)if(i%j=0)break;/退出循环j+;或for(j=2,k=sqrt(i);j=k;j+)if(i%j=0)break;continue语句 格式:continue;continue语句只能用在循环语句的循环体中,其含义是:立即结束当前循环,准备进入下一次循环。对于while和do-while语句,continue语句将使控制转到循环条件的判断;对于for语句,continue语句将使控制转到:先计算,然后计算,并根据的计算结果来决定是进入下一次循环还是结束循环。例:从键盘输入一些非零整数,然后输出其中所有正数的平方根。int n;double square_root;cout n;n!=0;cinn)if(n 0)continue;/准备进入下一次循环square_root=sqrt(n);cout n 的平方根是:square_root”输入一行字符;”;输入字符串line按规则将line编码并显示;结构化程序设计案例 line编码伪代码1 将line分割为若干单词按规则将每个单词编码并显示结构化程序设计案例 line编码伪代码2 定义字符“line未分割完毕”找出下一个单词传给word;按规则将word编码 显示word+;串变量word当显示换行符;结构化程序设计案例 line编码伪代码3 定义字符串变量wordFor(int i=0;iline的长度;)if(第i个字符为间隔类字符)直接输出该字符;i+else if(第i个字符为字母)将以此为首的子串传给word;按规则将word编码 显示word+;显示换行符;结构化程序设计案例 word编码伪代码3 定义字符串变量wordFor(int i=0;iline的长度;)if(第i个字符为间隔类字符)直接输出该字符;i+else if(第i个字符为字母)将以此为首的子串传给word;if(word为合法单词)按规则将word编码 显示word+;显示换行符;结构化程序设计案例 判别子串为合法单词伪代码(此处为函数)for(int i=0;i子串的长度;i+)if(第i个字符不是字母)return false return true结构化程序设计案例 单词word编码伪代码 找出首个元音字母;If(是首字母)word加后缀“way”Else 取出其前面的子串给head;将word中其余的字符前移;将head加入word;将后缀“ay”加入word;

    注意事项

    本文(第3章C++程序的流程控制.pptx)为本站会员(修****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开