如何用break跳出两层while循环?

millercn 2003-04-29 03:26:20
如果我不使用{}等代码段,直接跳出两层while,应该怎么做?
...全文
4691 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
millercn 2003-04-29
  • 打赏
  • 举报
回复
谢谢大家。原来很简单的语句竟然可以做如此复杂的调用。

再次感谢
yiminggw 2003-04-29
  • 打赏
  • 举报
回复
up
最好不要用goto
写一个函数是了用的时候调用就行了:)
bigtea 2003-04-29
  • 打赏
  • 举报
回复
YES
millercn 2003-04-29
  • 打赏
  • 举报
回复
是这样用goto吗?


lab1:
{
while(1)
{
…………;
while(1)
{
…………;
goto lab1;
}


}
}
bigtea 2003-04-29
  • 打赏
  • 举报
回复
现在"GOTO"的使用机会已大大减小,只是需要从多层循环的内层循环跳到外层循环外才用到GOTO语句.但是这种用法不符合结构化原则,一般不宜采用,只有在不得以时(例如能大大提高效率)才使用.
---<C程序设计>谭浩强
DanielWYO 2003-04-29
  • 打赏
  • 举报
回复
尽量不要让这种情况出现.
(改变你的设计思路)

如果出现的话, 就用goto吧!
lifanxi 2003-04-29
  • 打赏
  • 举报
回复
我能想到的跳出多层循环的方法只有三种
1.用break;加上一个辅助的标志变量。
2.用goto;
3.用try ... catch;
个人感觉两层循环的话用1还算可行,层次多了就建议用2,3看上去不错,但是成本比较高,而且大师们说过不要把异常处理用在正常操作的情况下。
bigtea 2003-04-29
  • 打赏
  • 举报
回复
同意用GOTO
jianjun081 2003-04-29
  • 打赏
  • 举报
回复
bool BREAK=false;
while(...){
for(...){
if(...){BREAK=true;break;}
}
if(BREAK) break;
}


for(i=1;i<=n1;i++)
{
for(j=1;j<=n2;j++)
{
if(//)
break;
}
if(j<=n2)
break;//这也是一个方法!
}
以博一笑

这样的程序效率太低,尽量不要再循环中使用if语句。
aiyinsitan 2003-04-29
  • 打赏
  • 举报
回复
这样的情况下goto是最简洁的
maxcai 2003-04-29
  • 打赏
  • 举报
回复
for(i=1;i<=n1;i++)
{
for(j=1;j<=n2;j++)
{
if(//)
break;
}
if(j<=n2)
break;//这也是一个方法!
}
以博一笑
fangrk 2003-04-29
  • 打赏
  • 举报
回复
bool BREAK=false;
while(...){
for(...){
if(...){BREAK=true;break;}
}
if(BREAK) break;
}
firela 2003-04-29
  • 打赏
  • 举报
回复
try and catch()
firela 2003-04-29
  • 打赏
  • 举报
回复
try and catch()
jiuyu 2003-04-29
  • 打赏
  • 举报
回复
up
mfs 2003-04-29
  • 打赏
  • 举报
回复
break加设外层while循环条件为假!
tiejun 2003-04-29
  • 打赏
  • 举报
回复
goto!
eyoexply 2003-04-29
  • 打赏
  • 举报
回复
标签
linchwu 2003-04-29
  • 打赏
  • 举报
回复
不要用goto了,
atto 2003-04-29
  • 打赏
  • 举报
回复
goto还不是一无是处的.
加载更多回复(3)

69,371

社区成员

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

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