c语言for循环课件_第1页
c语言for循环课件_第2页
c语言for循环课件_第3页
c语言for循环课件_第4页
c语言for循环课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

c语言For循环程序设计1c语言15.11.FOR循环的引入2.FOR循环语句的形式3.表达式缺省的FOR循环语句4.含有逗号运算符的FOR循环语句5.关于FOR循环的几点补充说明5.FOR循环语句的嵌套5.11.FOR循环的引入2一、FOR循环的引入1、复习前两节课我们学习的循环语句——while~do语句的基本格式和执行过程和特征。main(){intx=1;(表达式1)s=0;while(x<=100)(表达式2){s=s+x;x=x+1;(表达式3)}printf(“%d”,s);}分析用while语句来完成的程序,主要完成1到100的累加和,对一个循环程序来说最关键的三个部分:循环变量的赋初值、控制循环条件、循环控制变量的更新。一、FOR循环的引入1、复习前两节课我们学习的循环语句——w3二for循环语句形式:

C语言中的for循环语句比较复杂些,也比较灵活,功能较强.虽然主要用于定数循环,但也可以用于不定数循环,它完全可以替代while循环.

for循环语句的一般形式:

for(表达式1;表达式2;表达式3)

{

循环体

}

4二for循环语句形式:for循环语句的一般形式:4

for(表达式1;表达式2;表达式3)

{循环体}

表达式2求解表达式1

内嵌语句真假for语句后下

一条语句求介表达式3设置循环变量初值判断表达式循环变量增值5表达式2求解表达式1内嵌语句真假for语句后下

一条例:求100之内各数之和:

#include<stdio.h>intmain(

)

{inti,sum=0;

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

printf(“1+2+…100=%d”,sum);

return0;}

i<=100?i=1

sum+=i真假for语句后下

一条语句i++ch5_5_1.c{}

单条语句时,

大括号可以不要.6例:求100之内各数之和:i<=100?i=1sum+=例:把100~200之间的不能被3整除的数输出。

main(){intn;for(n=100;n<=200;n++){if(n%3==0)

continue;

/*能被3整除的数,不打印*/

printf(“%5d”,n);}}当然函数体也可改成:

if(n%3!=0)printf(“%d”,n);使用Continue仅是为了说明其的语法作用。7例:把100~200之间的不能被3整除的数输出。当然函数体也三、说明:表达式缺省的for()语句:for()语句中的三个表达式可以省略其中一个,二个,甚至三个。但无论省略几个,其中的二个分号不能省。如果在for语句之前,给循环变量已赋值,表达式1可省去。分号不能省。如:sum=0;

i=1;for(

;i<=100;i++)

sum=sum+i;表达式1可省去。8三、说明:表达式缺省的for()语句:如果在f2.如果表达式2省略,C编译程序认为其值恒为真,无限循环下去。如:for(i=1;;i++)sum=sum+i;

1.表达式3也可省去:如:for(i=1;i<=100;){sum=sum+i;

i++;

}

可把变量增值部分放在循环体内.表达式3可省去表达式2可省去92.如果表达式2省略,C编译程序认为其值恒为真,1例:

voidmain()

{inti=1,sum=0;for(;;)

{

sum+=i;

i++;

if(i>10000)

break;

}

}

这种无限循环可用break

语句来终止循环,避免产生死循环.3.甚至三个表达式都可省略:

for(;;)

语句;10例:voidmain()这种无限循环可用break补充:

逗号运算符(顺序运算符):

级别最低的一种。用它将二个表达式联起来,形成逗号表达式。如:

表达式1,表达式2

例:

a=3*5,a*4先求解3*5,得a的值为15,然后求解第二表达式a*4,得60。求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值用表达式2的值代表。逗号表达式11补充:逗号运算符(顺序运算符):例:一般形式还可扩展:

表达式1,表达式2,……,表达式n

整个表达式的值用表达式n的值代表。注:

a.在很多情况下,使用逗号表达式的目的只是想得到(计算)各个表达式的值,并非一定要得到或使用整个表达式的值。

b.并不是任何出现逗号的地方都是逗号运算符.如:

printf(“%d,%d,%d”,a,b,c);

其中的这些

逗号就不是。12一般形式还可扩展:注:其中的这些

逗号就不是。12四.含逗号运算符的for语句

for语句中,表达式1、表达式3可以使用逗号运算符:如:

for(i=1,j=20;i<j;i++,j--)用两个或两个以上的变量共同实现对循环的控制。13四.含逗号运算符的for语句用两个或两个以上的变量13例

输入不多于10个实数,求这些数的和及其中

正数之和.(若不足10个数,以0为结束标志)#include<stdio.h>#include<math.h>intmain(){floatsum,psum,x;inti=1;….14例输入不多于10个实数,求这些数的和及其中

for(sum=psum=0.0,i=0;i<10;i++) { scanf("%f",&x); if(fabs(x)<1e-4)break; sum+=x;//求这些数的总和 if(x<0)continue; psum+=x;

//其中正数之和 }printf("sum=%f\n",sum);printf("psum=%f\n",psum);return0;}

若输入为0,结束.输入小于0不累加.注意这个表达式ch5_5_4.c15for(sum=psum=0.0,i=0;五、对于for语句的进一步说明:(1).表达式1可以是设置变量初值的赋值表达式,也可是与

循环变量无关的其它表达式.

如:

for(sum=0;i<100;i++)sum=sum+i;(2).表达式2一般是关系表达式或逻辑表达式,但也可以是

其它类型表达式,只要其值为非零,就执行循环体.

如:

for(i=0;(c=getchar())!=‘\n’;i+=c)

;

不断输入字符,将ASCII码累加,直到输入一个换行符.16五、对于for语句的进一步说明:(2).表达式2一般是(3).f

or循环的条件检查总是在循环开始前进行的,如果

一开始条件为假(为零),则循环一次也不执行.

void

main(){intx,y=10;for(x=10;x<10;--y)printf(“%d”,y);

printf(“%d”,x);}一开始条件就为假!17(3).for循环的条件检查总是在循环开始前进行的,如(4).当for语句的循环体是空语句时,则成为空循环体的for

语句,利用它可以实现某些特殊功能,比如产生时间延迟

等.如下例:

for(t=0;t<value;t++)

;空循环体18(4).当for语句的循环体是空语句时,则成为空循环体的六、

循环嵌套:

for语句一般用于具有明确循环次数的情况,如果

事先不知道准确的循环次数,只知道循环条件,一般用

while或dowhile语句.循环是可以嵌套的,循环嵌套是指一个循环体内又可包含另一个完整的循环称为循环嵌套。里面的循环又可嵌套另一个循环,叫多层循环的嵌套。19六、循环嵌套:循环是可以嵌套的,循环嵌套是指一个

已知的三种循环:

while(),do-while(),for()

可以相互嵌套。如:while()for(){┆{┆dowhile(){…}{…}while();┆┆}}注:但循环嵌套不允许交叉20如:while()例:问程序输出的结果?

main()

{inti=1,a=0;

for(;i<=5;i++)

{

do{

i++;

a++;

}while(i<3);i++;}

printf(“a=%d,i=%d\n”,a,i);}

输出:

a=3,i=821例:问程序输出的结果?输出:

a=3,i=821

c语言For循环程序设计22c语言15.11.FOR循环的引入2.FOR循环语句的形式3.表达式缺省的FOR循环语句4.含有逗号运算符的FOR循环语句5.关于FOR循环的几点补充说明5.FOR循环语句的嵌套5.11.FOR循环的引入23一、FOR循环的引入1、复习前两节课我们学习的循环语句——while~do语句的基本格式和执行过程和特征。main(){intx=1;(表达式1)s=0;while(x<=100)(表达式2){s=s+x;x=x+1;(表达式3)}printf(“%d”,s);}分析用while语句来完成的程序,主要完成1到100的累加和,对一个循环程序来说最关键的三个部分:循环变量的赋初值、控制循环条件、循环控制变量的更新。一、FOR循环的引入1、复习前两节课我们学习的循环语句——w24二for循环语句形式:

C语言中的for循环语句比较复杂些,也比较灵活,功能较强.虽然主要用于定数循环,但也可以用于不定数循环,它完全可以替代while循环.

for循环语句的一般形式:

for(表达式1;表达式2;表达式3)

{

循环体

}

25二for循环语句形式:for循环语句的一般形式:4

for(表达式1;表达式2;表达式3)

{循环体}

表达式2求解表达式1

内嵌语句真假for语句后下

一条语句求介表达式3设置循环变量初值判断表达式循环变量增值26表达式2求解表达式1内嵌语句真假for语句后下

一条例:求100之内各数之和:

#include<stdio.h>intmain(

)

{inti,sum=0;

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

printf(“1+2+…100=%d”,sum);

return0;}

i<=100?i=1

sum+=i真假for语句后下

一条语句i++ch5_5_1.c{}

单条语句时,

大括号可以不要.27例:求100之内各数之和:i<=100?i=1sum+=例:把100~200之间的不能被3整除的数输出。

main(){intn;for(n=100;n<=200;n++){if(n%3==0)

continue;

/*能被3整除的数,不打印*/

printf(“%5d”,n);}}当然函数体也可改成:

if(n%3!=0)printf(“%d”,n);使用Continue仅是为了说明其的语法作用。28例:把100~200之间的不能被3整除的数输出。当然函数体也三、说明:表达式缺省的for()语句:for()语句中的三个表达式可以省略其中一个,二个,甚至三个。但无论省略几个,其中的二个分号不能省。如果在for语句之前,给循环变量已赋值,表达式1可省去。分号不能省。如:sum=0;

i=1;for(

;i<=100;i++)

sum=sum+i;表达式1可省去。29三、说明:表达式缺省的for()语句:如果在f2.如果表达式2省略,C编译程序认为其值恒为真,无限循环下去。如:for(i=1;;i++)sum=sum+i;

1.表达式3也可省去:如:for(i=1;i<=100;){sum=sum+i;

i++;

}

可把变量增值部分放在循环体内.表达式3可省去表达式2可省去302.如果表达式2省略,C编译程序认为其值恒为真,1例:

voidmain()

{inti=1,sum=0;for(;;)

{

sum+=i;

i++;

if(i>10000)

break;

}

}

这种无限循环可用break

语句来终止循环,避免产生死循环.3.甚至三个表达式都可省略:

for(;;)

语句;31例:voidmain()这种无限循环可用break补充:

逗号运算符(顺序运算符):

级别最低的一种。用它将二个表达式联起来,形成逗号表达式。如:

表达式1,表达式2

例:

a=3*5,a*4先求解3*5,得a的值为15,然后求解第二表达式a*4,得60。求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值用表达式2的值代表。逗号表达式32补充:逗号运算符(顺序运算符):例:一般形式还可扩展:

表达式1,表达式2,……,表达式n

整个表达式的值用表达式n的值代表。注:

a.在很多情况下,使用逗号表达式的目的只是想得到(计算)各个表达式的值,并非一定要得到或使用整个表达式的值。

b.并不是任何出现逗号的地方都是逗号运算符.如:

printf(“%d,%d,%d”,a,b,c);

其中的这些

逗号就不是。33一般形式还可扩展:注:其中的这些

逗号就不是。12四.含逗号运算符的for语句

for语句中,表达式1、表达式3可以使用逗号运算符:如:

for(i=1,j=20;i<j;i++,j--)用两个或两个以上的变量共同实现对循环的控制。34四.含逗号运算符的for语句用两个或两个以上的变量13例

输入不多于10个实数,求这些数的和及其中

正数之和.(若不足10个数,以0为结束标志)#include<stdio.h>#include<math.h>intmain(){floatsum,psum,x;inti=1;….35例输入不多于10个实数,求这些数的和及其中

for(sum=psum=0.0,i=0;i<10;i++) { scanf("%f",&x); if(fabs(x)<1e-4)break; sum+=x;//求这些数的总和 if(x<0)continue; psum+=x;

//其中正数之和 }printf("sum=%f\n",sum);printf("psum=%f\n",psum);return0;}

若输入为0,结束.输入小于0不累加.注意这个表达式ch5_5_4.c36for(sum=psum=0.0,i=0;五、对于for语句的进一步说明:(1).表达式1可以是设置变量初值的赋值表达式,也可是与

循环变量无关的其它表达式.

如:

for(sum=0;i<100;i++)sum=sum+i;(2).表达式2一般是关系表达式或逻辑表达式,但也可以是

其它类型表达式,只要其值为非零,就执行循环体.

如:

for(i=0;(c=getchar())!=‘\n’;i+=c)

;

不断输入字符,将ASCII码累加,直到输入一个换行符.37五、对于for语句的进一步说明:(2).表达式2一般是(3).f

or循环的条件检查总是在循环开始前进行的,如果

一开始条件为假(为零),则循环一次也不执行.

void

main(){intx,y=10;for(x=10;x<10;--y)printf(“%d”,y);

printf(“%d”,x);}一开始条件就为假!38(3).for循环的条件检查总是在循环开始前进行的,如(4).当for语句的循环体是空语句时,则成为空循环体的for

语句,利用它可以实现某些特殊功能,比如产生时间延迟

温馨提示

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

评论

0/150

提交评论