null第7讲 循环的嵌套第7讲 循环的嵌套一、continue 语句和 break 语句
1、continue语句
2、break语句
二、循环的嵌套
三、goto语句null一、continue 语句和 break 语句1、continue语句格式:continue ;功能:结束本次循环,使程序回行到循环条件,判断是否提前进入下一次循环。continue语句只用于循环结构的内部,常与if语句联合起来使用,以便在满足条件时提前结束本次循环。null例7.1 对除5的倍数以外的1~100的数求和。main( )
{int i,s;
s=0;
for(i=1;i<=100;i++)
{if (! (i%5))
continue;
s+=i;
}
}如果if判断语句为真,则跳出本次循环,回到循环条件,判断是否进行下一次循环此处,当i为5的倍数时,!(i%5)为真,跳出本次循环,不执行continue下面的语句,直接进入下一次循环,即执行for语句运行序列如下:
i if(!(i%5)) s+=i
1 假 s=0+1=1
2 假 s=1+2=3
3 假 s=3+3=6
4 假 s=6+4=10
5 真 不执行
6 假 s=10+6=16…… …… ……nullmain()
{
int n,s;
for (n=1,s=0;n<=20;n=n+1)
{ if (n%3==0) continue;
printf("%d\t",n);
s=s+1;
}
printf("\ntotal:%d\n",s);
}例7.2 统计1~50之间不能被3整除的数的个数并输出这些数。运行结果:
2 4 5 7 8 10 11 13 14 16 17 19 20
total: 14null格式: break;
功能:循环体中遇见break语句,立即结束循环,跳到循环体外,执行循环结构后面的语句。2、break语句 在循环体中break语句常与if语句搭配使用,并且break语句只能用在switch语句和循环语句中。 break只能跳出一层循环(或者一层switch语句结构)null例7.3 统计输入的字符个数,并输出它们,以“!”终止。main( )
{char chr;
int s;
for( s=0; ; s++)
{chr=getchar( );
if (chr==‘!’)
break;
else printf(“c%”,chr);}
printf(“s=%d\n”,s);
}如果if判断语句为真,则结束循环,执行循环结构后面的语句此处,当输入字符为“!”时,chr==‘!’为真,结束for循环,执行循环结构后面的语句,即执行printf (“s=%d\n”,s)语句运行序列如下:
输入 if(chr==‘!’) 输出
a 假 a
5 假 5
$ 假 $
B 假 B
! 真 4null例7.4 计算半径r=1到r=10时圆的面积,直到面积area大于100为止。#define pi 3.14159
main( )
{ int r;
float area;
for( r=1;r<=10 ; r++)
{area=pi*r*r;
if (area>100) break;
printf(“ %f”,area);
}
}null二、循环的嵌套一个循环体内又包含另一个完整的循环结构,称为循环的嵌套,内嵌的循环中还可以嵌套循环即为多层循环。说明:
⑴ 嵌套的原则: 不允许交叉
⑵ 循环与分支可以相互嵌套但不允许交叉。null* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *输出图形:for(i=1;i<=4;i++)
{ printf(“* * * * * * * *”);
printf(“\n”);
}null其中语句:printf(“* * * * * * * *”);
等价于for(j=1;j<=8;j++) printf(“*”);于是构成了二重循环语句:for(i=1;i<=4;i++)
{for(j=1;j<=8;j++) printf(“*”);
printf(“\n”);
}null 上面的例子中:
外循环由外循环控制变量i控制,i由1递增到4。for(i=1;i<=4;i++)
{for(j=1;j<=8;j++) printf(“*”);
printf(“\n”);
}每1次的外循环中,都要执行由内循环控制变量j控制的8次内循环操作和1次换行操作。由此:每次内循环输出一个星号,每次外循环输出一行(8个)星号,4次外循环,输出了4行8列星号。nulln = 1 ;
while ( n <= 3 )
{ printf( " 输出外循环n=%d\n", n );
i = 1 ;
while ( i <= 2 )
{ printf( " 1) 输出内循环 i = %d\n", i );
i ++ ; }
j = 1 ;
while ( j <= 3 )
{ printf( " 2) 输出内循环 j = %d\n", j );
j ++ ; }
n ++ ; }例7.5读程序,写出运行结果:null输出外循环n=11) 输出内循环 i =11) 输出内循环 i =22) 输出内循环 j =12) 输出内循环 j =22) 输出内循环 j =3输出外循环n=2输出结果:输出外循环n=3null例7.6 输出九九乘法
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
······
1 * 9 = 9 2 * 9 =18 ······ 9 * 9 = 81nullnullmain( )
{ int i ,j ;
for ( i = 1 ; i < = 9 ; i ++ )
{ for ( j = 1 ; j < = i ; j ++ )
printf("%d*%d=%2d ", i, j, i*j );
printf ( "\n");
}
}程序 :null例7.7 输出3~100中的所有素数。
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
:
1)对于某个数n,如果从2到n-1都不能被n整除,则该数n为素数。此处,除数2到n可以用一个for语句来表示:
for (i=2;i<=n-1;i=i+1)2)对于3~100之间的数,可以表示如下:for (n=3;n<=100;n=n+1)nullmain( )
{int n,i;
for (n=3;n<=100;n=n+1)
{for (i=2;i<=n-1;i=i+1)
if (n%i==0) break;
if (i>=n) printf("%d\t",n);
}
}程序 :null例7.8 读程序段,写出输出结果:for(i=1;i<=2;i++)
{for(j=1;j<=3;j++)
{for(k=1;k<=4;j++) printf(“*”);
printf(“\n”);
}null输出如下图形:i从1到2k从1到4j从1到3null例7.9 输出如下图形: * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * * * * *null * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * * * * *分析:共有5行,外循环 i:1~5第一行输出4个空格,1个星号第三行输出2个空格,5个星号第二行输出3个空格,3个星号第五行输出0个空格,9个星号……空格用循环变量j控制,j=5-i星号用循环变量k控制,k=2i-1null程序 :main( )
{int i,j,k;
for(i=1;i<=5;i++)
{for(j=1;j<=5-i;j++) printf(“ ”);
for(k=1;k<=2i-1;j++) printf(“*”);
printf(“\n”);
}
}null练习7.10 输入一个整数n,输出如下回文塔。1
1 2 1
1 2 3 2 1n=3时n=5时1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1null三、goto语句格式:
goto 语句标号 ;
······
标号:语句 ;作用:
1)与 if 语句构成循环结构。
2)从循环体中强制退出。null说明:
1)goto语句为无条件转向语句。 goto语句可以从循环体内跳出循环,尤其在多层循环中,使用goto语句可以跳到任意一层循环体内。
2)标号的命名
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
同变量名。
3)goto语句不符合结构化程序设计原则,一般不主张使用。