怎么从多重循环中跳出来

如何从多重循环中跳出来?
代码中经常遇到这样的问题

void   func()
{
      int   i   ;

      for   (   i=0;   i <size;   ++i   )
      {
                int   j   ;

                for   (   j=0;   j <count;   ++j   )
                {
                          if   (   j   ==   value   )
                          {
                                goto   end
                            }
                  }
        }
:end

}

感觉用goto不够优雅,   有什么好的替代方法吗?谢谢  


------解决方案--------------------
复杂的多嵌套上下文精密的赋值循环都只能用goto 控制流,goto 是最终的武器,一般不要常用
用也尽量只用一个label
------解决方案--------------------
只能一层一层的跳出,或者可以的话,用return,返回到调用端
------解决方案--------------------
作为好风格的代码,不应该有多重循环,都是单循环,里面调一个函数。
这样,就可以用return来控制了。
------解决方案--------------------
其实只要不滥用goto,合理的使用是非常好的,就像核弹的厉害很大,但如果没有核弹,武力就会弱很多,所以核弹是必须要有的,但不能每天都拿个核弹去炸人家吧,所以如Java中不能使用goto,但在Java中却有一个跳转的label,其实就是弱化了的goto,主要是用于从深层循环中快速跳出来,所以合理运用goto还是很有好处的,只要不随便到处跳就行了.
------解决方案--------------------
对于goto来说,也不是不能用,只要不交叉使用就可以,既不要上下跳转.
对于你这个程序
void func()
{
int i ;

for ( i=0; i <size; ++i )
{
int j ;

for ( j=0; j <count; ++j )
{
if ( j == value )
{
 return; // 直接跳走就可以了。
}
}
}


}
------解决方案--------------------
一般别用GOTO,多用break
------解决方案--------------------
可以考虑在每层循环中都设置标志位,通过在内层循环符合条件后改写所有标志位来达到层层跳出的效果
------解决方案--------------------
控制好goto的使用,是非常方便的。
不明白为啥总是把goto看作洪水猛兽。
我在MFC类库的源码中也看到过goto语句。
------解决方案--------------------
goto破坏模块化程序设计,不过偶尔用一下也无伤大雅,LZ不要强求
------解决方案--------------------
可以考虑在每层循环中都设置标志位,通过在内层循环符合条件后改写所有标志位来达到层层跳出的效果
-------------------
这种方式最不可取,用标志位来控制流程,是非常可怕的做法!
------解决方案--------------------
1,goto
2,flag
------解决方案--------------------
goto生手慎用,主要是怕出问题不好查。
break,return
------解决方案--------------------
goto其实是最简单的跳出多层循环的方法,
但在代码很复杂的时候容易引起调试困难,
能不用就不用.
如果像问题中的简单程序,推荐使用goto.
简单明了,效率高!
------解决方案--------------------
goto换成break 不就好了么