-
1 文字讲解
-
2 视频讲解
-
3 学习辅导
4.5.1 break 语句
在学习switch 语句时,就已介绍过break语句,那时它可以使程序跳出switch结构。实际上,break语句也可以用于循环结构中,使程序提前跳出循环,结束循环,转移到循环后面的语句。
看下面的例子。
例4-7 求不同半径的圆柱体的体积,只计算体积在100以下的圆柱体。
#include <stdio.h>
#include <conio.h>
#define PI 3.14
main( )
{ int r;
float h; double v;
printf("请输入圆柱体的高:");
scanf("%f", &h);
for( r = 1; r <= 10; r++ )
{ v=PI * r * r * h;
if( v > 100.0 ) break;
printf("半径等于%d,体积等于%.2f \n", r, v);
printf("此时r=%d\n", r);
}
getch( );
}
运行结果如图4-10所示。

从运行结果看,循环并未执行10次,而是提前结束。主要因为循环体中有一个测试,即“v>100.0”。一旦测试为真,就立即执行 break 语句,使程序直接跳出循环,不再执行剩下图4-10 例4-7运行结果的循环,而是转到循环后面的语句。流程图如图4-11所示。

break 语句适用于3种循环结构:while 语句、do··while 语句、for 语句。但break 语句不能用于除循环结构和switch结构以外的其他地方。
4.5.2 continue语句
continue语句的作用是:程序跳过循环体中该语句后 面的所有语句,提前结束本轮循环,直接进入下一轮循环。
continue语句与break语句的区别是:前者只是结束本轮循环,而不是结束整个循环:后者则是结束整个循环。
例4-8 输出50~100之间所有不能被7整除的整数。
#include <stdio.h>
#include <conio.h>
main( )
{ int num, cnt=0;
for( num = 50; num < 100; num ++)
{
if( num % 7 == 0 )
continue; // 结束本轮循环
printf("%5d",num );
cnt++;
if( cnt % 10==0) printf("\n"); //每行输出10个整数
}
printf("\n");
getch();
}
运行结果如图4-12所示。

根据题意,一旦发现该数能被 7 整除,就不执行输出语句了,而是直接进入下一轮循环。


