第6章第6节 §66循环的嵌套(难点) 概念 循环中又包含另一个(或多个)循环一形成多层循环 二.使用 while,do… while for()均可互相嵌套 1)while() 2)d0 3)for(;;) while( do for while(; while: 4)while) do 内层循环 while(;
第6章 第6节 §6.6 循环的嵌套(难点) 一. 概念 循环中又包含另一个(或多个)循环 多层循环 形成 二. 使用 while , do .... while for( ) 均可互相嵌套 1) while( ) {.... while( ) {....} } 2) do {.... do {...} while( ); } while; 3) for( ; ; ) {.... for ( ; ; ) {...} } 4) while( ) {.... do {....} while( ); } 内层循环
第6章第2节 执行 从外层循环进入内层循环,只有当内层循环执行完后才返回到外层循环 例1P12064求:1+2!+3!+4!+……+10 求∑ 求:10 10 maint int i=l: main long int mul=l fint j=0, Sum=0; while<=10) while(i<=10) tsum=sum+j; tsum=sum*i; printf(“sum=%dm”,sum) printf((“mul=%dⅦm”,mul);} 解 main( double mul, sum=0.0 printi〔“%ld”,sum) t whiles<=10 =1,mul=10; while(i<=j) mulmul 求j i++;} sumsum+mul: i++
第6章 第2节 三. 执行 从外层循环进入内层循环,只有当内层循环执行完后才返回到外层循环 例 1 P120 6.4 10 n 求 n main() { int j=0, sum=0; while(j<=10) {sum=sum+j; j++;} printf(“sum=%d\n”,sum);} main() { int i=1; long int mul=1; while(i<=10) {sum=sum*i; i++;} printf(“mul=%d\n”,mul);} 求: 10! 解: main( ) {double mul, sum=0.0; int i,j=1; while(j<=10) {i=1,mul=1.0; while(i<=j) {mul=mul*i; i++;} sum=sum+mul; j++ } printf(“%ld”,sum); } 求j! 求:1+2!+3!+4!+……+10!
第6章第6节 用for语句 main Double mul, sum=0.0 Int 1, for(j=1:j<=10j++) {mul=1.0 for(i=l; i<=j;i++) mul=muli: 求j sum=sum+mul; printf(“%ld”,sum) 例2打印“九九表” 2*1=22*2=4 3*1=33*2=63*3=9 9*1=99*2=189*3=27…9*9=81 解:有9行,可用for(i=1;i<=9;i++)… 第共有例for〔j=1;j<=i;j+)
第 6 章 第 6 节 用for 语句 main() {double mul, sum=0.0; int i,j; for(j=1;j<=10;j++) {{mul=1.0; for(i=1;i<=j;i++) mul=mul*i; } sum=sum+mul;} printf(“%ld”,sum); } 求j! 例 2 打印“九九表” 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 ..... 9*1=9 9*2=18 9*3=27 .... 9*9=81 解 : 有 9行, 可用 for(i=1; i<=9; i++) ..... 第 i行共有 i 例 for(j=1;j<=i;j++)
第6章第8节 程序 maint Int 1, J for(i=1;i<=9;i++) {for(=1;j<=i;j++) printf(%d*%d=%d ,i,j, i*j; printf(“n”); §67几种循环的比较 自学 §68 break语句和 continue语句 . break语句 1)用于 switch语句中。作用:从 switch语句中跳出 两种用途 2)用于循环中。 作用:从循环体中跳出,即循环到此为止,不再 执行(中止整个循环)
第6章 第8节 程序 main() { int i, j; for (i=1;i<=9;i++) { for(j=1;j<=i;j++) printf(“%d*%d=%d ”,i,j,i*j); printf(“\n”); } } §6.7 几种循环的比较 ——自学 §6.8 break语句和continue语句 一. break语句 两种用途 1).用于switch语句中。作用:从switch语句中跳出 2).用于循环中。 作用:从循环体中跳出,即循环到此为止,不再 执行(中止整个循环)
第6章第8节 例1任一数值,连续除以3,直到商的绝对值<0.001为止 解:循环次数不能确定,可以假设一个大的循环次数,在循环体中 引入一个条件,判断商是否≤0.001,如成立,则结束循环。 # include“ math. h” # include“ math . h (0 main( main (0 float x, resul; float, resul longly printf(“in long 1, input a data”); printf((“ input a data”); scanf(“%r”,&x) scanf(“%of,&x); resul-X, result=x: for(i=1;i<=1000:+) do resulresul/3.0: result=resul/3.0; while(resul>0.001) if(fabs(resul)=0.001) print(“ resul-%r”,resu); break print(“ resul%r”,resu);
第6章 第8节 例1 任一数值,连续除以3,直到商的绝对值≤0.001为止 解: 循环次数不能确定, 可以假设一个大的循环次数 , 在循环体中 引入一个条件, 判断商是否≤0.001, 如成立, 则结束循环。 # include “math.h” main() {float x, resul; long i; printf(“input a data”); scanf(“%f”,&x); resul=x; for(i=1;i<=100000;i++) {resul=resul/3.0; if(fabs(resul)<=0.001) break; } printf(“resul=%f”,resul); } # include “math.h” main() {float x, resul; long i; printf(“input a data”); scanf(“%f”,&x); result=x; do resul=resul/3.0; while (resul>0.001) printf(“resul=%f”,resul); }