两层FOR循环中,调用break,退出的是哪一层的循环?

askquestion2002 2003-03-28 02:20:54
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
if(---) break;
......


请问:如果条件满足,调用break;退出的是哪一层的for?是内层的还是两层都退出了?

如果我想调用在条件满足时退出这两层的for循环,执行下面的操作该如何做?
...全文
11245 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen123456 2003-03-28
  • 打赏
  • 举报
回复
break应是退出当前它所在的复合语句,而continue是在循环语句中结束本次循环,不再执行本次循环后面的语句,开始下一个循环。
elvahuang 2003-03-28
  • 打赏
  • 举报
回复
来晚了 同意凤大姐
maxcai 2003-03-28
  • 打赏
  • 举报
回复
for(i=1;i<=n1;i++)
{
for(j=1;j<=n2;j++)
{
if(//)
break;
}
if(j<=n2)
break;//这也是一个方法!
}
以博一笑
FFTiger 2003-03-28
  • 打赏
  • 举报
回复
是退出这个break所在的一层循环.
TO;jackmtlee(sunshine) continue 不是退出循环,而是从break的退出后处继续执行.
chengdulang 2003-03-28
  • 打赏
  • 举报
回复
只推出第一层。你可以试试

void main()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("a");
break;
}
printf("b");
}
}
darkhawk 2003-03-28
  • 打赏
  • 举报
回复
当然是退出最近的循环或者swith语句了
bouque 2003-03-28
  • 打赏
  • 举报
回复
刚刚在vc6.0上测试过
break退出离它最近的一层循环
for(int j=0;j<=20;j++)
{
for(int i=0;i<=10;i++)
{
if(i==5) break;
}
if(j==20) cout<<" 'break' break from the nearest loop"<<endl;
}
cout<<j<<endl;
cout<<i<<endl;
输出结果为:'break' break from the nearest loop"
21
5

WaterSpinach 2003-03-28
  • 打赏
  • 举报
回复
break是退出当前的循环层,
如果你想退到最外面的话,
最好的方法就是goto(这种情况下用goto还是有必要的)
bigkahuna 2003-03-28
  • 打赏
  • 举报
回复
if(t==1) break ;
好象要退出循环了
aitforever 2003-03-28
  • 打赏
  • 举报
回复
在内循环后面再紧接一个break;就好了
CHUJUN98 2003-03-28
  • 打赏
  • 举报
回复
你要设置指示变量,如
int t = 0;
for(int i=0;i<3;i++)
{
for (int j=0;j<3;j++)
if(----)
{
t=1;
break;
}
if(t==1) break ; //判断是否由内层循环退出,
}
jackmtlee 2003-03-28
  • 打赏
  • 举报
回复
楼上的姐姐不对吧,continue才是
fengzheng229 2003-03-28
  • 打赏
  • 举报
回复
使用break命令,退出的是离它最近的一层循环,所以你的程序中调用break退出的是内层的for循环

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧