70,037
社区成员
发帖
与我相关
我的任务
分享#include <stdio.h>
#include <math.h>
main(void)
{
int i,k,n,tag=0;
int a[3][4]={{1,2,3},{4,5,6},{7,8,9}};
scanf("%d",&n);
for(i=0;i<3;i++)
{
for(k=0;k<4;k++)
{
if(a[i][k]==n)
{
tag=1;
printf("%d %d\n",i,k);
break;
}
}
}
printf("%d %d\n",i,k);
if(tag==0)
printf("-1\n");
return 0;
}
for(;;)//循环1
{
for(;;)//循环2
{}
break;//此时的break是跳出了所有的循环
}
break是跳出break语句所在的循环,这个例子里,break跳出的就是循环1,但是循环1包含了循环2,那么这个break的效果就是跳出了所有的循环,但本质还是跳出一层循环#include <stdio.h>
#include <math.h>
int main(void)
{
int i,k,n,tag=0;
int a[3][4]={{1,2,3},{4,5,6},{7,8,9}};
scanf("%d",&n);
for(i=0;i<3;i++)
{
for(k=0;k<4;k++)
{
if(a[i][k]==n)
{
tag=1;
printf("%d %d\n",i,k);
break;//跳出内层for循环
}
}
if(tag == 1)//这里加上判断,如果tag == 1,跳出外层循环
break;
}
if(tag==0)
printf("-1\n");
return 0;
}
break是跳出当前一层循环,你的程序里是2层for循环,第一个break是跳出内层for循环,但仍在外出循环中