2015-02-24 45 views
0

OK,所以我一直在尋找了在Java中,goto語句,我無意中發現了這個帖子: Is there a goto statement in Java? (我知道,我是去角質:P)我在讀帖子,有人評論困惑我。

不管怎麼說,我碰到這種吸盤的代碼絆倒在評論中:

public static void main(String [] args) { 

boolean t = true; 

first: 
{ 
    second: 
    { 
     third: 
     { 
      System.out.println("Before the break"); 

      if (t) { 
       break second; 
      } 

      System.out.println("Not executed"); 

     } 

     System.out.println("Not executed - end of second block"); 

    } 

    System.out.println("End of third block"); 

} 
} 

而我很困惑爲什麼第二個塊不會在休息之後執行。誰可以給我解釋一下這個?

我會評論問,但我沒有足夠高的代表這樣做。

謝謝!

+0

「*我很困惑,爲什麼第二個街區在休息之後不會被執行。」我對你的困惑感到困惑。這就是'break second'的整點,'break'標記有'second'的代碼塊(在這個塊之後立即移動控制流)。你還期望什麼其他行爲? – Pshemo 2015-02-24 00:57:47

+0

我誤解了break的用法,於是我認爲這是爲了擺脫你在代碼中的位置,然後從指定的標籤開始。 – 2015-02-24 01:00:16

+0

@AustenClay你迷茫與goto決裂。 – zubergu 2015-02-24 01:01:16

回答

2

而我很困惑,爲什麼第二個塊不會在中斷後執行 。

因爲帶標籤的break語句終止帶標籤的塊並且不執行回標籤。

+0

謝謝,我明白它是如何工作的^ _ ^ – 2015-02-24 01:01:13