break语句退出循环时,它将退出离它最近的那层循环。比如下面的代码,定义一个两维数组,不希望输出第2行。
#include
int main()
{
int a[3][3] = { {1,2,3}, //第一行
{4,5,6}, //第二行
{7,8,9} //第三行
};
for (int i=0; i!=3; ++i) {
for (int j=0; j!=3; ++j)
{
if (a[i][j] == 4) break; //进入第二行时break跳出,只跳出离它最近的for循环
printf("%d\n", a[i][j]);
}
}
return 0;
}
//这个题最好用return,为了符合你的要求,还是用了两个break实现。
//注意1不是是素数。
#include
#include
void gede(long k);
long sushu(long c);
void main()
{long k;
printf("请输入一个大偶数:");
scanf("%d",&k);
gede(k);}
void gede(long k)
{
long i,j;
for(i=1;i
for(j=1;j
{
printf("两个素数为%d和%d\n",i,j);
break;//退出内循环。当然这儿最好是用retun;直接返回,后面的if(j
if(j
}
long sushu(long c)
{
int a;double b;
if(c<2)return 0;//加这行,因为1不是素数!
b=sqrt((double)c);
for(a=2;a<=b;a++)
if(c%a==0)return 0;
if(a>b)return 1;
}
C语言中break语句只能跳出它所处的那一层循环。
要跳出多重循环,必须使用多个 break。
在这个循环里面加break
for(i=1;i
{
goto bottom;
break;
}
bottom:printf("两个素数为%d和%d\n",i,j);}
不过加不加都会执行bottom的,你程序要改改了
跳出调用函数的话不要用break比较好吧,一层层跳出很蛋疼容易错啊