2017-04-06 120 views
-1

在C#中,假设有两个嵌套循环(每个循环可以是while循环或for循环)。 在内部循环的中间,我想打破这两个循环的,当条件为真,打破内循环中间的两个嵌套循环

loop1 
{ 
    ... 
    loop2 
    { 
     ... 
     (I want to break out of both loops, when some condition is true) 
     ... 
    } 
    ... 
} 

是否有一个更优雅的方式比

loop1 
{ 
    ... 
    loop2 
    { 
     ... 
     if (condition) 
      break 
     ... 
    } 
    if (condition) 
     break 
    ... 
} 

感谢。

+1

我想创建一个函数与这些循环和使用'return',因为如果您在循环块后,有更多的代码,调用返回会使他们不执行,这就是为什么我把它们放在一个单独的功能。 – Alisson

+0

这是它被普遍接受为可以使用'goto'声明的少数几次之一。虽然有其他方法可以解决问题 – Jonesopolis

+0

@Jonesopolis我不知道这是否是完全相同的副本。一个'goto'会很好,但它也可以封装在一个函数中并返回。这是我会做的。这不是另一个问题的完全重复。 –

回答

1

把它放在一个方法和return;

public void TheLoops() 
{ 
    while(true) { 
     while(true) { 
      if (condition) { 
       return; 
       // or change void to a type and 
       // return conditionResult; 
      } 
     } 
    } 
}