c语言可实现循环的语句

上传人:cl****1 文档编号:569783321 上传时间:2024-07-31 格式:PPT 页数:28 大小:370.52KB
返回 下载 相关 举报
c语言可实现循环的语句_第1页
第1页 / 共28页
c语言可实现循环的语句_第2页
第2页 / 共28页
c语言可实现循环的语句_第3页
第3页 / 共28页
c语言可实现循环的语句_第4页
第4页 / 共28页
c语言可实现循环的语句_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《c语言可实现循环的语句》由会员分享,可在线阅读,更多相关《c语言可实现循环的语句(28页珍藏版)》请在金锄头文库上搜索。

1、5.1 概述C语言可实现循环的语句:l用goto 和 if 构成循环lwhile 语句ldo while 语句lfor 语句5.2 goto语句及用goto构成循环无条件转向goto语句一般格式:goto 语句标号;第五章 循环控制v说明:l语句标号用标识符表示,不能用整数l结构化程序设计限制使用goto语句例 5.1 用if 和goto语句构成循环,求main() int i,sum=0; i=1;loop: if(i=100) sum+=i; i+; goto loop; printf(%d,sum);sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100

2、=5050循环初值循环终值循环变量增值循环条件循环体v用途:l与if语句一起构成循环结构l从循环体中跳转到循环体外while语句v一般形式:while(表达式) 循环体语句;v执行流程:表达式循环体假(0)真(非0)while例5.2 用while循环求 #include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);循环初值循环终值循环变量增值循环条件循环体v特点:先判断表达式,后执行循环体v说明:l循环变量应有一个初值l循环体有可能一次也不执行l循环体可为任意类型语句l循环体如果包含一个以上的语句,应

3、用花括号括起来,以复合语句的形式出现,否则,while语句的范围只到while后第一个分号处l循环体中应有使循环趋向于结束的语句 如本例中的i+语句dowhile语句v一般形式:do 循环体语句; while(表达式);v执行流程:do循环体表达式假(0)真(非0)while例5.3 用dowhile循环求 #include main() int i,sum=0; i=1; do sum+=i;i+; while(i=100); printf(%d,sum);v特点:先执行循环体,后判断表达式v说明:l至少执行一次循环体ldowhile可转化成while结构表达式循环体假(0)真(非0)循环体

4、While循环例 5.4 while和dowhile比较main() int i,sum=0; scanf(%d,&i); do sum+=i;i+; while(i=10); printf(%d,sum);main() int i,sum=0; scanf(%d,&i); while(i=10) sum+=i;i+; printf(%d,sum);for语句v一般形式:for(表达式1 ; 表达式2 ;表达式3) 循环体语句;v执行流程:真(非0)for表达式2循环体假(0)表达式1表达式3vfor语句一般应用形式:for(循环变量赋初值;循环条件;循环变量增值)循环体语句;v说明:lfor

5、语句可以转换成while结构lfor语句中表达式1,表达式2 ,表达式3 类型任意,都可省略,但分号;不可省,表达式2 省略时,不判断循环条件,也就是认为表达式2始终为真l三个表达式可都省略: for(; ;)表达式1;while(表达式2)循环体语句;表达式3;例_1 用for循环求 #include main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum);for (i=1; ;i+)sum=sum+i;i=1;for (;i=100 ;i+)sum=sum+i;for ( i=1;i=100 ;)sum=sum+i; i+;

6、 i=1;for (;i=100 ;)sum=sum+i; i +例_2:#include main( ) int i; for(i=0;i10;i+) putchar(a+i); 运行结果:abcdefghij例_3:#include main( ) int i=0; for(;i10;i+) putchar(a+i); 例_4:#include main( ) int i=0; for(;i10;) putchar(a+(i+); 例_6:main() int i,j,k; for(i=0,j=100;i=j;i+,j-) k+=i*j; printf(%d+%d=%dn,i,j,k);表

7、达式1,3也可以是逗号表达式例_5:main() int i,j,sum; for(sum=0,i=1;i=100;i+) sum=sum+i; printf(%dn,sum);例_8:#includemain() char c; for(;(c=getchar()!=n;) printf(%c ,c);例_7:#includemain() int i,c; for(i=0;(c=getchar()!=n;i+=c); printf(%d ,i);表达式2可以是关系或逻辑表达式,也可以是其它类型的表达式,只要其值非0,就执行循环体循环的嵌套v三种循环可互相嵌套,层数不限v外层循环可包含两个以上

8、内循环v嵌套循环的执行流程(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .内循环外循环内循环123456789.12345678912468101214161823691215182124273918273645546372819 例 循环嵌套,输出九九表ij例_9:#include main() int i,j; printf(“ ”); for(i=1;i10;i+) printf(%4d,i); printf

9、(n-n); for(i=1;i10;i+) printf(“%d”,i); for(j=1;j10;j+) printf(%4d,i*j); printf(“n”); 4.5 辅助控制语句break语句v功能:在循环语句和switch语句中,终止并跳出循环体或跳出switch结构v说明:lbreak只能终止并跳出最近一层的结构lbreak不能用于循环语句和switch语句之外的任何其它语句之中lIf和goto构成的循环语句中不能用break语句表达式break;假(0)真(非0)whiledobreak;.表达式假(0)真(非0)while表达式2break;.假(0)真(非0)for表达式

10、1expr3switch表达式语句组1break;语句组2break;语句组nbreak;语句组break;.const 1const 2const ndefaultcase 例_10:输出圆面积,面积大于100时停止#define PI 3.14159main() int r; float area; for(r=1;r100) break; printf(r=%d,area=%.2fn,r,area); 例_11:小写字母转换成大写字母,直至输入非字母字符#include main() int i,j; char c; while(1) c=getchar(); if(c=a & c=z)

11、 putchar(c-a+A); else break; continue语句v功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断v仅用于循环语句中表达式continue;假(0)真(非0)while真(非0)docontinue;.表达式假(0)while表达式2continue;.假(0)真(非0)for表达式1表达式3例_12 求输入的十个整数中正数的个数及其平均值#include main() int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d,&a);if(a=0) continue;num+;sum+

12、=a; printf(%d plus integers sum :%6.0fn,num,sum); printf(Mean value:%6.2fn,sum/num);例5.5 把100200之间的不能被3整除的数输出main() int n; for(n=100;n=200;n+) if(n%3= =0) continue;printf(%dn,n); 程序举例t=1,pi=0,n=1.0,s=1当|t|1e-6pi=pi+tn=n+2s=-st=s/npi=pi*4输出pi分子:1,-1,1,-1分母:1,3,5,7,.#include main() int s; float n,t,pi

13、; t=1; pi=0; n=1.0; s=1; while(fabs(t)=1e-6) pi=pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; printf(pi=%10.6fn,pi);例5.7 求Fibonacci数列:1,1,2,3,5,8,的前40个数f1=1,f2=1for i=1 to 20输出f1,f2f1=f1+f2f2=f2+f1153423315971094675025514229352457824157817185537725841771112139383204057028873908816921389610418128657196418134626

14、9922746563245986321144987676546368317811217830914930352102334155main() long int f1,f2; int i; f1=1;f2=1; for(i=1;i=20;i+) printf(“%12ld%12ld”,f1,f2);if(n%2= =0) printf(“n”);f1=f1+f2; f2=f2+f1; 例5.8 判断m是否素数读入mk=mi=2当ikm被i整除真假用break结束循环i=i+1ik+1真假输出:m”是素数”输出:m”不是素数”#include main() int m,i,k,n=0; for(m

15、=101;m=200;m=m+2) k=sqrt(m); for(i=2;i=k+1) printf(%d ,m);n=n+1; if(n%10=0) printf(n); printf(n);#include main() int m,i,k; scanf(%d,&m); k=sqrt(m+1); for(i=2;i=k+1) printf(%d is a prime numbern,m); else printf(%d is not a prime numbern,m);例5.10 译密码例如 Hello,world!译成密码:Lipps,asvph!#includemain() char c; while(c=getchar()!=n) if(c=a&c=A&cZ&cz) c=c-26; printf(%c,c);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号