2017-04-06 123 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; 
      } 
     } 
    } 
}