第四讲 循环结构.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲 循环结构

循环结构程序设计 主要内容 1 概述 2 while语句 3 do-while语句 4 for语句 5 循环的嵌套 6 break语句和continue语句 3.3 循环结构程序设计 反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。 程序设计中: 把这种重复过程,称为循环过程; 把由循环语句构成的程序结构称为循环程序结构; 循环结构是程序设计中最常用的一种程序结构。 在C语言中可以用下列语句实现循环: while do-while for 指定次数的循环程序设计 一般包含四个部分: 初始化:指定循环起点 给循环变量赋初值,如i = 1; 进入循环之前,设置相关变量的初值,如sum = 0。 条件控制: 只要i = 100,循环就继续 工作:指重复执行的语句(循环体)。 一条语句,可以是复合语句或空语句。如sum = sum + i。 改变循环变量:在每次循环中改变循环变量的值 如 i++,以改变循环条件的真假。一旦i 100,循环结束。 程序举例 嵌套循环求1! + 2! + …. + 10! 数列1、1、2、3、5、8、13、21、…是著名的菲波那奇数列,其递推通项公式为: F1 = F2 =1 Fn = Fn-1 + Fn-2 (n=3) 为求出前40项的值,请编写程序。 程序举例 例编写程序求这样一个数,这个数用3除余2,用5除余3,用7除余2。(从0开始测试) 一般需要使用循环的情况是: 有重复的动作(循环体) 循环次数可以控制(循环条件) 例如: 1+2+3+….+100 表达式可以是关系表达式、逻辑表达式或其它类型; 结果:程序将不停的打印“n is 0”,直至终止程序,无法正常终止的程序,称为“死循环”。 上机调试程序时若出现死循环,用“ctrl+break”退出死循环。 在while语句循环体中,一定要有能够对循环控制条件产生影响的语句。避免出现“死循环”现象。 C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句 格式说明符前带负号,表示输出左对齐 %3d,输出整数占3位 我们采用的算法是这样的:让m被2到m-1 除,如果m能被2~m-1 之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k(即m);如果m不能  被2~k(即m)之间的任一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。在循环之后判别i的值是否大于或等于k+1, 若是,则表明未曾被2~k之间任一整数整除过,因此输出“是素数”。 在例的基础上,对本题用一个嵌套的for循环即可处理。程序如下: * * 提问:从键盘上输入10个整数并求和,怎么编程? 回答:在程序中写入10个scanf( )语句。 scanf(“%d”,x); total+=x; scanf(“%d”,x); total+=x; …… scanf(“%d”,x); total+=x; scanf(“%d”,x); total+=x; 提问:从键盘上输入500个整数并求和,怎么编程? 回答:这个,嗯……??? 3.3.1 三种循环结构的流程表示及执行过程 ──while语句 一般形式: While (表达式) 语句 功能:实现当循环,先判断,后执行。表达式为真时(非0值),执行while语句的内嵌语句。 语句可以是简单的,也可以是复合的; 循环体中应有使循环趋向于结束的语句。 while (0) { .... } 由于循环的条件表达式恒等于0,循环体永远也不会执行,是编程者的错误。 while (1) { .... } 由于循环的条件表达式恒等于1,所以不可能通过循环控制条件来结束循环体的执行,称为“死循环”。 表达式 语句 0 非 0 [例] 求1+2+3+….+100 。 main() { int i=1,sum=0; while (i=100) { sum=sum+i; i++; } printf(%d,sum); } 不能写成 if (i=100) 如果有一个以上的语句循环,则必须用{ }构成复合语句。要有修改循环变量的语句。 sum=0,i=1 输出 sum i=100 sum=sum+i i=i+1 0 非 0 3.3.1 三种循环结构的流程表示及执行过程 ──while语句

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档