欢迎来到天天文库
浏览记录
ID:5563633
大小:837.50 KB
页数:50页
时间:2017-11-13
《第5章 循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章循环结构程序设计掌握循环结构的基本特点掌握3种循环语句:for语句、while语句和do-while语句学会利用for语句、while语句和do-while语句设计简单的循环程序了解goto语句构成的循环5.1案例:一次有趣的投币游戏5.1.1游戏规则5.1.2问题的解决①游戏的开始首先游戏中的投币数和投币箱我们分别用变量i和s来存储。游戏之前,执行以下两条语句:s=0;/*投币箱开始必须是空的*/i=1;/*投币数开始是1*/②游戏的进行每次的投币操作都可以看成以下两条语句的执行:s=s+i
2、;/*第i个人投币i枚*/i=i+1;/*第i+1个人准备投币*/将以上两条语句运行100次就完成了任务,就相当于投币100次。③游戏的结束还有个重要的问题就是,游戏什么时候结束?很显然,当第100个人投币结束,游戏结束,即只要i<=100,游戏继续进行,否则结束。5.1.2问题的解决s=0;/*盒子开始为空*/i=1;/*第1次投币*/while(i<=100)/*100次投币*/{s=s+i;/*投入i枚硬币到s中*/i=i+1;/*计算下次投币数*/}循环结构语句for循环while循环do-
3、while循环5.2while循环while循环通过while语句实现。while循环又称为“当型”循环。一般格式为:while(表达式)语句其中,括号后面的语句可以是一条语句,也可以是复合语句。它们都称为循环体。while语句的执行过程为:(1)计算并判断表达式的值。若值为0,则结束循环,退出while语句;若值为非0,则执行循环体(2)转步骤(1)5.2while循环流程图【例5-1】计算s=1+2+3+…+100。#includevoidmain(){inti,s;i=1;s
4、=0;while(i<=100)/*循环控制*/{s=s+i;i=i+1;}printf("s=%d",s);}注意:循环体包括一条或多条语句,多条语句必须用一对花括号“{}”括起来。合理的循环是有限次循环。如果循环不能退出,则称为“死循环”,在程序设计中应该避免出现。控制循环执行的次数因素包括循环中的循环条件、控制循环的主要变量的初值和终值以及每次变化的幅度等。例如,上例中i有效地控制了循环的运行,i从1循环到100,每次加1,循环运行了100次,i也可以称为循环变量。注意:如果只有一个循环变
5、量,而且循环变量每次有固定的增加和减少,则循环的次数可以用以下公式计算:循环次数=(终值-初值)/步长+1步长为循环变量每次增加或减少的值,例如,上例循环次数为:(100–1)/1+1,即100次。步长可以为负数。【例5-2】计算1到100之间所有3的倍数的和。#includevoidmain(){inti,s;i=3;s=0;while(i<=99){s=s+i;i=i+3;}printf("s=%d",s);}5.3do-while循环do-while循环,又称为“直到型”
6、循环,用do-while语句来实现,其一般格式为:do{语句}while(表达式);do-while语句的执行过程为:先执行循环体语句再判断表达式的值。若值为0,则结束循环,退出do-while语句;若值为非0,则继续执行循环体。5.3do-while循环流程图【例5-3】计算s=1+2+3+…+100。#includevoidmain(){inti,s;i=1;s=0;do{s=s+i;i=i+1;}while(i<=100);printf("s=%d",s);}do-wh
7、ile循环和while循环可以完成相同的任务。例如上面的程序都可以计算出1到100的数的和。do-while循环的循环条件的判断在循环体的后面,所以和while循环有区别,例如下面的两个程序:inti=1;s=0;inti=1,s=0;while(i<1)do{{s=s+i;s=s+i;i=i+1;i=i+1;}}while(i<1);printf("s=%d",s);printf("s=%d",s);左边的程序运行结果为:s=0右边的程序运行结果为:s=1。5.4for循环for循环是循环
8、的一种标准形式,通过for语句实现,其语法如下:for(①;②;③)④①表达式,通常用于循环的初始化。包括循环变量的赋初值、其他变量的准备等;②表达式,循环的条件判断式,如果为空则相当于真值;③表达式,通常设计为循环的调整部分,主要是循环变量的变化部分;④循环体,由一条或多条语句构成,多条语句需要用一对花括号括起来。5.4for循环【例5-4】计算s=1+2+3+…+100。#includevoidmain(){inti,s;for(i=1,s=0;
此文档下载收益归作者所有