首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教,break怎么跳出外层循环

2012-12-28 
请问,break如何跳出外层循环foreach{foreach{foreach{for(){if()break}}}}如果条件满足,如何让break跳出

请问,break如何跳出外层循环


foreach
{
foreach
{
foreach
{
for()
{
if()
break;
}
}

}
}


如果条件满足,如何让break跳出最外层循环?
[解决办法]
详情请查阅goto语句的用法


for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    if (j == 3)
                        goto Found;
                }
            }

            Found:
            Console.WriteLine("aaa");

[解决办法]
goto加一
无条件跳转语句,但是一般只建议在跳多层循环时使用。
[解决办法]
重构。(在你的vs里的设计窗口中,点击鼠标右键,你可以看到“重构”选项)

private void abc(....)
{
  foreach
  {
     foreach
     {
        foreach
        {
           for()
           {
             if()
                return;
......

[解决办法]
重构选项中有好几种方法,你可以选择“提取方法”方法。

除了重构菜单,我们还经常使用Ctrl+K+M(生成方法存根),在一个对象后边的代码上点击鼠标右键选择“生成->属性/字段”等等,这些都是重构方法。

这些都是“小伎俩”,但是是非常基本的编程模式,不用动脑子。
[解决办法]
引用:
详情请查阅goto语句的用法

C# code?1234567891011for (int i = 0; i < 5; i++)            {                for (int j = 0; j < 4; j++)                {                    if (j == 3)                 ……


基本上,编程中应该严禁出现向后跳转的goto语句。

对于向前跳转的goto语句,也应该尽量不用。
[解决办法]
对于C#来说,goto语句是最好的。

[解决办法]
goto不要用,设置变量把,在循环外面加个变量判断,默认为false,如果里面break了,就设置变量为true,然后调出来立即检查变量,如果为true,就接着break,如果是false,那就接着循环

[解决办法]
当然,你也可以用sp1234的小技巧,这样的小技巧有很多,还可以用linq把foreach改成平面的。比如
List<int> data1;
List<int> data2;
foreach (var item1 in data1)
    foreach (var item2 in data2)
    {
        ...
    }
可以写成
foreach (var x in data1.SelectManay(x => data2.Select(y => new { item1 = x, item2 = y })))
{
    ...
}
[解决办法]

引用:
基本上,编程中应该严禁出现向后跳转的goto语句。
 
对于向前跳转的goto语句,也应该尽量不用。


具体问题具体分析,我可以举出很多案例说明用goto带来更好的可读性。

因为新手用不好goto,所以很多人都告诫新手,不要用goto。但是我会和团队的人说,如果特定情况我告诉你用goto更好,那你就放心按照我说的做好了。
[解决办法]
引用:
引用:基本上,编程中应该严禁出现向后跳转的goto语句。
 
对于向前跳转的goto语句,也应该尽量不用。

具体问题具体分析,我可以举出很多案例说明用goto带来更好的可读性。

因为新手用不好goto,所以很多人都告诫新手,不要用goto。但是我会和团队的人说,如果特定情况我告诉你用goto更好,那你就放心按照我说的做好了。
……
学习
[解决办法]
使用goto的代码可读性差到极点,不建议使用,微软应该屏蔽掉这关键字。
[解决办法]
引用:
引用:
基本上,编程中应该严禁出现向后跳转的goto语句。
 
对于向前跳转的goto语句,也应该尽量不用。

具体问题具体分析,我可以举出很多案例说明用goto带来更好的可读性。

因为新手用不好goto,所以很多人都告诫新手,不要用goto。但是我会和团队的人说,如果特定情况我告诉你用goto更好,那你就放心按照我说的做好了。

+++1
[解决办法]
引用:
goto不要用,设置变量把,在循环外面加个变量判断,默认为false,如果里面break了,就设置变量为true,然后调出来立即检查变量,如果为true,就接着break,如果是false,那就接着循环


这个方法个人感觉比较简单易懂,只不过需要层层判断,如果你的逻辑比较简单的话,可以考虑这个。
[解决办法]
这个例子中用goto比较好,具体问题具体分析,道理是死的,人是活的.
[解决办法]
老手与新手的区别体现在奇淫技巧的使用上了
[解决办法]
定义一个 bool 类型 如果 bool 值 为 true ,那么就一层 一层跳出,一层加一个 break,最后跳出为止
[解决办法]
人家就问怎么跳出 。你跟人家扯什么重构。 搞笑。
[解决办法]
引用:
定义一个 bool 类型 如果 bool 值 为 true ,那么就一层 一层跳出,一层加一个 break,最后跳出为止

说的很清楚了,圈复杂度太高的代码可读性不好
[解决办法]
引用:
引用:
定义一个 bool 类型 如果 bool 值 为 true ,那么就一层 一层跳出,一层加一个 break,最后跳出为止
说的很清楚了,圈复杂度太高的代码可读性不好

不过这个bool不是变量,而是提取新的方法,这就是重构
[解决办法]
亲,用goto吧!挺好!
[解决办法]
直接把break;改为return;
[解决办法]
跳出有N种方法。
不过如果有的人写了三层以上的循环,99%以上都是算法或结构有问题。



[解决办法]
如果这几个循环里的代码就那么几行,那就goto吧,一眼就看得到
不然还是提到方法里,用return吧
[解决办法]
只要CPU指令集里还有JMP类指令,GOTO就永远不会退出历史舞台。。木哈哈。。敢黑我大GOTO。。。
为什么要怕GOTO?因为挫呗。。。
就像刚入江湖的小菜鸟给他一把锋利的宝剑他却不敢用。。因为太锋利了手艺不够。。一不小心就会把自己划残了。。。
团队编程的问题。。太多菜鸟拿着宝剑乱划,所以干脆禁止使用。。。请教,break怎么跳出外层循环
[解决办法]
return;

热点排行