如何跳出嵌套循环?

rainbow2k 2003-04-10 08:35:58
比如如下代码:
if (){
while(){
*****
}
}
else{
}
在****处的希望跳出if循环,怎么做好一点?
...全文
691 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryback 2003-04-12
  • 打赏
  • 举报
回复
我觉得GOTO是个非常好的东东,循环得头脑发胀的时候不妨用用,什么破换结构的,都是瞎说,要不然别人不会把GOTO取消了算了?
feihu303 2003-04-12
  • 打赏
  • 举报
回复
有条件判断加break
fangjinhuo 2003-04-11
  • 打赏
  • 举报
回复
goto or break
bullet2003 2003-04-11
  • 打赏
  • 举报
回复
强烈建议,
不要用GOTO。
wanghuan1983 2003-04-11
  • 打赏
  • 举报
回复
最好不要用GOTO语句,那样的话就破坏了结构化的程序设计了
woxihuanbohe 2003-04-11
  • 打赏
  • 举报
回复
这样吧

while(循环判断){
*****
if(跳出判断)
break;
}
zhpsam109 2003-04-11
  • 打赏
  • 举报
回复
你写的结构可以用break就行了!
williamzhang_zz 2003-04-11
  • 打赏
  • 举报
回复
goto显然是可以的,break也可以,具体就要看你在哪儿用了,逻辑能否控制得好,语句没有一定不能用的说法。
LXYbcl 2003-04-11
  • 打赏
  • 举报
回复
break;
lys37960982 2003-04-11
  • 打赏
  • 举报
回复
可以在前面设置一个bool类型的变量flag=true;然后当你要跳出时候就将flag设置为false,当然在while判断语句中应该用&&将flag加进去.例如:
bool flag=true;
if (****){
while(****&&flag){
*****
if(你要跳出时的条件)
{
flag==false;
}
}
}
else{
}
_goolooloo_ 2003-04-11
  • 打赏
  • 举报
回复
这个应该不用goto吧
在while中*****处break,同时置一个标志变量,出来以后判断标志,决定是不是继续执行if中while后的语句。
if()
{
while()
{
//....
flag = true;
break;
//....
}
if(!flag)
{
//....
}
}
else
{
}
penguinzhao 2003-04-11
  • 打赏
  • 举报
回复
break;
Cypher 2003-04-11
  • 打赏
  • 举报
回复
不建议用抛出异常的办法。异常有时确实有其优势,如可以一下子跳出几重函数,没必要在每一层判断返回值(当初创建异常这种模式在其种程度上可以说是感觉每一级判断函数返回值很麻烦,去年有一期程序员杂志上有好几篇文章,具体那一期记不太清楚了)。

但是,异常应该仅仅是用在程序出错的地方,这种正常流程中不应该用异常。异常的处理开销还是比较大的,大家有兴趣可以反汇编VC或GCC编译出来的代码看一看。另外,只要你编译时支持异常,就算你没有任何地方用到异常处理,开销还是存在的。在嵌入式开发中最好不要使用它。

对于goto,我还是那句话,它是一个双刃剑,关键看你怎么用了。既然C++ Standard Committee没有去掉它,可见它还是有存在的理由的。用结构化语言并不见得就能写出结构化很好的程序来,Linux内核代码中到处都是goto,难道它是很烂的东西?有人用汇编照样可以写出结构化的程序来,而汇编指令中if/else等其实全是跳转形成的。
pophil 2003-04-11
  • 打赏
  • 举报
回复
就是用break搞定啊
反正我是这样做的
这样最直接,也很容易阅读
方便程序维护!!
sprewellkobe 2003-04-11
  • 打赏
  • 举报
回复
用BREAK搞定
infected 2003-04-11
  • 打赏
  • 举报
回复
尽量不用goto的好,break应该可以实现。
jaweehuang 2003-04-11
  • 打赏
  • 举报
回复
强烈反对用GOTO 语句,这样养成习惯后写复杂一点的程序会很乱。
有人已经想去掉这个保留字了。
用break就好了。那么直接跳出这个For循环。
如果只是不执行本次操作,用continue;
lightingstorm 2003-04-11
  • 打赏
  • 举报
回复
绕过goto,否则编大型程序会死人的
bache1115 2003-04-11
  • 打赏
  • 举报
回复
如果嵌套不是很多可以考虑用goto
XChinux 2003-04-11
  • 打赏
  • 举报
回复
多break几次
加载更多回复(26)

69,371

社区成员

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

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