大学计算机程序设计基础(C语言)-第5章循环结构_第1页
大学计算机程序设计基础(C语言)-第5章循环结构_第2页
大学计算机程序设计基础(C语言)-第5章循环结构_第3页
大学计算机程序设计基础(C语言)-第5章循环结构_第4页
大学计算机程序设计基础(C语言)-第5章循环结构_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章循环结构本章内容dowhile语句for语句while语句123转移语句4程序举例5循环循环的基本要素有三个:循环入口(即循环的初始化条件)循环出口(即循环的终止条件)循环体(反复执行的部分)

C语言提供了3种循环语句实现循环结构while语句do-while语句for语句5.1while语句while语句的一般形式为:

while(表达式)语句;

while(i<=100){sum=sum+i;i=i+1;}/*求n个自然数的累加和*/main(){intn,i=1,sum=0; printf(“Enteranumber:”);scanf(“%d”,&n);while(i<=n){sum+=i;

i++;}

printf("Sumis%d",sum);}while举例【例5.1】计算注意事项while语句中的表达式可以是任意表达式,一般是关系表达或逻辑表达式,只要表达式的值为非0(真)则继续循环。如:while(n--) printf("%d",n);循环体可以是空语句、单语句或用花括号括起来的复合语句。应注意循环条件的选择以避免死循环。例如下列循环语句:

while(n=10)printf("%d",n++);while语句从语法上来说是一条完整的控制语句。注意事项允许while语句的循环体语句又是while语句,从而形成循环嵌套。i=1;

while(i<=9)/*外循环*/{j=1;

while(j<=i) /*内循环*/ {printf("%4d",i*j);j++;}i++;

printf("\n");}5.2dowhile语句do-while语句的一般形式为:

do语句;

while(表达式);dowhile举例main(){inti=0,sum=0;

do{sum+=i;

i++;

}while(i<=100);

printf("%d",sum);}/*求n个自然数的累加和*/【例5.3】一个人口统计程序,1980年世界人口已达45亿,按年增长率1%计算,问什么年份开始世界人口突破100亿大关。main(){intyear=1980;

doublerate=0.01,p=45;

do{p=p*(1+rate);

year++;}

while(p<100);

printf("year=%d,%e\n",year,p);}for语句一般形式为:for(表达式1;表达式2;表达3)语句执行过程:①计算表达式1的值,为循环变量赋初值。 ②计算表达式2的值,若值为非0(真),则执行循环体一次,否则跳出循环。③计算表达式3的值,转回第②步重复执行。如:sum=0;for(k=1;k<=100;k++)sum+=k;/*求n个自然数的累加和*/main(){intn,i=1,sum=0;

scanf(“%d”,&n);do{sum+=i;

i++;

}while(i<=n);

printf("%d",sum);}main(){intn,i=1,sum=0; printf(“Enteranumber:”);scanf(“%d”,&n);while(i<=n){sum+=i;

i++;}

printf(“%d",sum);}main(){intn,i,sum=0;

scanf(“%d”,&n);

for(i=1;i<=n;i++)sum+=i;

printf("%d",sum);}for举例【例5.4】编程计算正整数1到n中的奇数之和以及偶数之和。main(){inti,n,o_sum,e_sum;

scanf("%d",&n);

e_sum=0;o_sum=0;for(i=1;i<=n;i++){if(i%2==0)e_sum+=i;

elseo_sum+=i;}

printf("o_sum=%d,e_sum=%d\n",o_sum,e_sum);}for语句的不同形态1、三个表达式均可省略,但两个分号不能省略。2、循环体也可以省略,但分号不可省略。“;”代表空语句,表示不执行任何操作,但在语法上不可少。3、表达式1和3还可包含与循环变量无关的其它表达式。4、表达式2可为任意表达式,只要其值为非零,就执行循环体。三种循环语句实现:1+2*2+3*3+……+100*100循环嵌套多种形态for语句也可与while,do-while语句相互嵌套,构成多重循环。①for(){…

while()

{…}

…}②do{…

for()

{…}

…}while();③while(){

for()

{…}

…}④for(){

for(){…}…}程序举例【例5.6】有1、2、3三个数字,编写程序输出由这三个数组成的互不相同且无重复数字的两位数。即输出:12,13,21,23,31,32。main(){inti,j,k;printf("\n");for(i=1;i<4;i++)/*以下为二重循环*/

{

for(j=1;j<4;j++)

{if(i!=j)

/*确保i、j两位互不相同*/

printf("%d%d\n",i,j);

}}}main(){inti,j,p;for(i=1;i<=9;i++){

for(j=1;j<=i;j++){p=i*j;

printf("%4d“,p);

}printf("\n");

}}【例5.7】编程打印三角形表示(黑色区域)的九九乘法表*12345678911224336944812165510152025661218243036771421283542498816243240485664991827364554637281转移语句C语言提供的4种转移语句为:goto,break,continue

goto语句goto语句也称为无条件转移语句,格式如下:

goto

语句标号;改变程序正常流向,转去执行语句标号标识的语句语句标号用标识符定义,置于某一语句行的前面,语句标号后加冒号(:),语句标号起标识语句的作用。goto语句举例/*求n个自然数的累加和*/main(){inti=1,sum=0,n;

scanf(“%d”,&n);loop:sum+=i++;

if(i<=n)gotoloop;printf("%d",sum);}break语句break语句一般形式为:break;break语句只能用在switch语句或循环语句中作用:跳出switch语句或跳出本层循环,转去执行后面的程序语句。break程序举例main(){inti,s;s=0;for(i=1;i<=10;i++){if(i>5)break;printf(“i=%d\n”,i);}}continue语句continue语句一般格式是:continue;只能用在循环体中语义:结束本次循环,即不再执行循环体中continue语句之后的语句,转入下一次循环条件的判断与执行。注意,本语句只结束本层本次的循环,并不跳出循环。continue语句举例main(){intk=0,s=0,i;for(i=1;i<=3;i++){s=s+i;if(s>2){printf(“i=%d,s=%d,k=%d\n”,i,s,k);continue;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论