
东方一诺计算机二级C语言循环结构课件.ppt
21页第五章 循环结构u循环型程序设计u辅助控制语句东方一诺技术培训研发中心东方一诺技术培训研发中心5.1 循环型程序设计 概述C语言可实现循环的语句:vwhile 语句vdo while 语句vfor 语句东方一诺技术培训研发中心东方一诺技术培训研发中心 while语句v一般形式:while(表达式) 循环体语句;v执行流程:expr循环体假(0)真(非0)while东方一诺技术培训研发中心东方一诺技术培训研发中心v特点:先判断表达式,后执行循环体v说明:循环体有可能一次也不执行;循环体只能是一条语句,如果包含 一条以上的语句,应该用:循环体中一般有使循环趋向结束的语句, 也有无限循环,如 k=0; while(k10) printf(“*”); k+; 程序将重复执行输出语句printf,输出10个*号 东方一诺技术培训研发中心东方一诺技术培训研发中心#include main() int a; a=1; if(a=10) a+ ; printf(“a=%dn”,a);区分if语句和while语句.#include main() int a; a=1; while(a=10) a+ ; printf(“a=%dn”,a); dowhile语句v一般形式:do 循环体语句; while(表达式);v执行流程:do循环体expr假(0)真(非0)whilev特点:先执行循环体,后判断表达式v说明:l至少执行一次循环体lwhile和dowhile比较#include main() int a; scanf(“%d”,&a); do a+ ; while(a=10); printf(“a=%dn”,a);#include main() int a; scanf(“%d”,&a); while(a=10) a+ ; printf(“a=%dn”,a);结论:当while后面的表达式的值为“真”时,两种循环得到的结果相同。
否则,两者结果不相同 for语句v一般形式:for(expr1 ; expr2 ; expr3) 循环体语句;v执行流程:expr2循环体假(0)真(非0)forexpr1expr3vfor语句一般应用形式:for(循环变量赋初值;循环条件;循环变量增值)循环体语句;v说明:for语句中expr1, expr2 ,expr3 类型任意,都可省略,但他们之间分号;不可省无限循环: for(;)for语句可以转换成while结构expr1;while(expr2)循环体语句;expr3;例:#include main( ) int i; for(i=0;i10;i+) printf(“%d”,i); 例:#include main( ) int i=0; for(;i10;) printf(“%d”,i+); 东方一诺技术培训研发中心东方一诺技术培训研发中心#includemain() int i,j,k; for(i=0,j=100;i=j;i+,j-) k=i+j; printf(%d+%d=%dn,i,j,k); 例 分别用while 、dowhile 和 for 循环求 #include main()int i,sum=0; i=1; while(i=100) sum+=i; i+; printf(%d,sum);#include main()int i,sum=0; i=1; do sum+=i; i+; while(i=100); printf(%d,sum);#include main()int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum); 循环的嵌套v三种循环可互相嵌套,层数不限v外层循环可包含两个以上内循环,但不能相互交叉(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .内循环外循环内循环东方一诺技术培训研发中心东方一诺技术培训研发中心例5.2有以下程序段:int i,j,m=0;for(i=1;i=15;i+=4) for(j=3;j=19;j+=4) m+;printf(“%d”,m);程序段的输出结果是( ) A 12 B 15 C 20 D 25C东方一诺技术培训研发中心东方一诺技术培训研发中心5.2 辅助控制语句 break语句 功能:在循环语句和switch语句中,终止并跳出循环体,即提前结束循环,接着执行循环下面的语句。
说明: break只能终止并跳出最近一层的结构 break只能用于循环语句和switch语句东方一诺技术培训研发中心东方一诺技术培训研发中心例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); default : printf(“data error!”); case 3: case 2: printf(“Pass!”); case 1: printf(“Fail!”); break;break;break;break;break;东方一诺技术培训研发中心东方一诺技术培训研发中心例 break举例: main() int s=0,i; for(i=1;i=5;i+) if(i%2=0) break; s=s+i; printf(“%d,%d”,s,i); 结果: 1,2东方一诺技术培训研发中心东方一诺技术培训研发中心 continue语句v功能:结束本次循环,跳过循环体中 尚未执行的语句,进行下一次是否 执行循环体的判断v仅用于循环语句中东方一诺技术培训研发中心东方一诺技术培训研发中心例 continue举例: main() int s=0,i; for(i=1;i=5;i+) if(i%2=0) continue; s=s+i; printf(“%d,%d”,s,i); 结果: 9,6东方一诺技术培训研发中心东方一诺技术培训研发中心本章总结重点:u 三种循环语句的应用u 循环语句的嵌套u break和continue难点:u 循环语句嵌套执行过程u break和continue的异同点东方一诺技术培训研发中心东方一诺技术培训研发中心本章上机练习题1 计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
2 功能是:计算并输出下列级数和: 3 功能是计算下列级数和: 东方一诺技术培训研发中心东方一诺技术培训研发中心。












