2014-09-03 29 views
-1

我知道,您可以通過以下方式使用循環標籤:在一個循環的Java兩個標籤

foo: 
while (something) { 
    // ... 
    while (somethingElse) { 
     if (yetAnotherCondition) { 
      break foo; 
     } 
    } 
} 

不過,我注意到,這是不是一個錯誤語法有兩個標籤,一個循環。一個例子(我知道標籤是不必要的,並且循環只執行一次,但只是爲了顯示兩個標籤上一個循環的津貼):

foo: 
bar: 
for (int i = 0; i < 5; i++) { 
    break foo; 
} 

奔跑等同於

foo: 
bar: 
for (int i = 0; i < 5; i++) { 
    break bar; 
} 

有誰知道什麼時候只需要一個循環就需要兩個標籤?運行時我期望編譯錯誤,但沒有得到。

+0

標籤是任意的,並且(在'switch'語句之外)它們真的打算在嵌套循環中使用。 – 2014-09-03 17:54:38

+0

你不需要它,但他們從來不打算禁止它,所以編譯器接受它。 – 2014-09-03 18:37:29

回答

1

假設您有兩種不同的結果需要打破不同的代碼。在測試過程中,您最終可能會註釋掉其中的代碼。這樣它仍然可以工作,而不是打破。