C++程序设计课程介绍第4章 循环控制.ppt
《C++程序设计课程介绍第4章 循环控制.ppt》由会员分享,可在线阅读,更多相关《C++程序设计课程介绍第4章 循环控制.ppt(51页珍藏版)》请在三一办公上搜索。
1、第4章 循环控制,重复N次循环While循环Do while循环循环的中途退出枚举法贪婪法,重复N次操作,某一组语句要重复执行N次“重复n次”循环通常用 for 语句实现,如将1到100十个数相加可写为:s=0;for(i=1;i=100;+i)s+=i;,i 称为循环变量,循环条件,每次循环后循环变量的变化,for循环语句,格式:for(表达式1;表达式2;表达式3)语句执行过程:1.执行表达式12.执行表达式23.如果表达式2的结果为“true”,则执行循环体和表达式3,然后回到2,否则for语句执行结束,循环体,循环控制行,for循环语句 续,作为计数循环,可以理解为for(循环变量赋初
2、值;循环条件;循环变量增值)符合循环条件时的执行语句循环体所有语句的一次完全执行称为一个循环周期循环体可以是复合语句或空语句,空语句和复合语句,单个分号组成的语句成为空语句用 括起来的一组语句称为复合语句。在逻辑上看成一个语句。复合语句可以放在任何单语句出现的地方在复合语句中可以定义变量,For循环实例,某班级有100个学生,设计一程序统计该班级某门考试成绩中的最高分、最低分和平均分。方案一:先输入100个整型数,保存在各自的变量中。然后依次检查这100个数,找出最大的和最小的。在找的过程中顺便可以把所有的数都加起来。最后将总和除100就得到了平均值。,方案一的缺陷,需要定义100个变量需要输
3、入100个变量的值从100个变量中找出最大者,需要100个if 语句从100个变量中找出最小者,需要100个if 语句将这100个变量加起来需要一个长长的算术表达式,方案二,每个学生的分数在处理过后就没用了,为此,可以用一个变量保存当前正在处理的分数每次输入分数的同时将它们加起来:70加40等于110,110加80等于190。并记住最低分的和最高分的值。上述过程重复100次。,方案二的实现,定义:int value,total,max,min;当输入每个数值时必须执行下面的步骤,这可以用for循环实现请求用户输入一个整数值,将它存储在变量value中。将value加入到保存当前和的变量tota
4、l中。如果value大于max,将value存于max。如果value小于min,将value存于min。,#includeusing namespace std;int main()int value,total,max,min,i;/value:当前输入数据,i为循环变量 total=0;max=0;min=100;/变量的初始化 for(i=1;i value;total+=value;if(value max)max=value;if(value min)min=value;cout n最高分:max endl;cout 最低分:min endl;cout 平均分:total/100
5、endl;return 0;,注意缩进,For循环的进一步讨论,For循环的三个表达式可以是任意表达式三个表达式都是可选的。如果循环不需要任何初始化工作,则表达式1可以缺省。如循环前需要做多个初始化工作,可以将多个初始化工作组合成一个逗号表达式,作为表达式1。,逗号表达式,格式:表达式1,表达式2,,表达式n 执行过程:先执行表达式1,再执行表达式2,再执行表达式n,整个表达式的计算结果为最后一个表达式的值逗号运算符的优先级是所有运算符中最低的 如a的初值为0,则表达式 a+=1,a+=2,a+=3,a+=4,a+=5的结果为 15,有了逗号表达式,从1加到100的问题就可以只用一个语句:fo
6、r(i=1,s=0;i=100;+i)s+=i;或将所有的初始化都放在循环外,即i=1;s=0;for(;i=100;+i)s+=i;建议还是用 s=0;for(i=1;i=100;+i)s+=i;,For循环的进一步讨论 续,表达式2也不一定是关系表达式。它可以是逻辑表达式,甚至可以是算术表达式。当表达式2是算术表达式时,只要表达式的值为非0,就执行循环体,表达式的值为0时退出循环。如果表达式2省略,即不判断循环条件,循环将无终止地进行下去。无终止的循环称为“死循环”最简单的死循环是 for(;);要结束一个无限循环,必须从键盘上输入特殊的命令以中断程序执行并强制退出,For循环的进一步讨论
7、 续,表达式3也可以是任何表达式,一般为赋值表达式或逗号表达式。表达式3是在每个循环周期结束后对循环变量的修正。表达式3也可以省略,此时做完循环体后直接执行表达式2。如从1加到100,可以写为 s=0;for(i=1;i=100;)s+=i,i+;或 s=0;for(i=1;i=100;s+=i,i+);,循环的嵌套,将一个for循环嵌入到另一个for循环中 内层的for循环在外层循环的每一个周期中都将执行它的所有的周期 每个for循环都要有一个自己的循环变量以避免循环变量间的互相干扰,打印九九乘法表,#includeusing namespace std;void main()int i,j
8、;for(i=1;i=9;+i)for(j=1;j=9;+j)cout i*j t;cout endl;,第4章 循环控制,重复N次循环While循环Do while循环循环的中途退出枚举法贪婪法,While循环,如何对不同人数的班级完成分数统计任务?方法一:在程序的开始部分请求用户输入数据个数,并将之存放在某个变量中,以此来替换for语句控制行中使用的常量100 方法二:定义一个特殊的输入数据,用户可以通过输入该数据来标识输入序列的结束 方法二需要另外一种的循环控制结构,While 循环语句,格式:while(表达式)语句执行过程:先计算出条件表达式的值。如果是false,循环终止,并接着执
9、行在整个while循环之后的语句。如果是true,整个循环体将被执行,而后又回到while语句的第一行,再次对条件进行检查。用途:用于循环次数不定的循环。循环是否结束取决于某一个条件是否成立,While语句实例,设计一个程序,统计某个班级某门考试成绩中的最高分、最低分和平均分。当输入的分数为-1时,输入结束,int main()int value,total,max,min,noOfInput;/total总分,noOfInput人数 total=0;max=0;min=100;noOfInput=0;/置初值 cout value;while(value!=-1)+noOfInput;tot
10、al+=value;if(value max)max=value;if(value value;cout n最高分:max endl;cout 最低分:min endl;cout 平均分:total/noOfInput endl;return 0;,eg 2.求,时结束。,ex=0;p=1;while(p0.000001)ex+=p;计算新的p;,问题:如何计算p?计算第i个p,需要两个i次的循环。第一个循环计算xi,第二个循环计算i!解决方案:从前一项计算后一项。如果p是第i项的值,则第 i+1 项的值为 p*x/(i+1),int main()double ex,x,p;/ex存储ex的值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计课程介绍第4章 循环控制 C+ 程序设计 课程 介绍 循环 控制
链接地址:https://www.31ppt.com/p-2997259.html