2013-06-27 38 views
6

有誰知道group_skip是做什麼的?Java中的break語句做什麼?

也許這是一個基本的編程,但我一直在使用Java進行編程多年,現在才發現它。

group_skip: do { 
    event = stepToNextEvent(FormController.STEP_OVER_GROUP); 
    switch (event) { 
     case FormEntryController.EVENT_QUESTION: 
     case FormEntryController.EVENT_END_OF_FORM: 
      break group_skip; 
    } 
} while (event != FormEntryController.EVENT_END_OF_FORM); 

謝謝!

+5

不要發佈文字的圖像,而是直接複製並粘貼到您的文章的實際文字。文字圖像不容易分析,搜索或訪問。 –

+1

編輯它!對不起:D – Rendy

+1

這是一個標籤,可以用來打破陳述 – Longball27

回答

15

這是一個labelled loop,當執行break group_skip;語句時,它會跳出做的while循環,標示爲group_skip

boolean isTrue = true; 
    outer: for (int i = 0; i < 5; i++) { 
     while (isTrue) { 
      System.out.println("Hello"); 
      break outer; 
     } // end of inner while 
     System.out.println("Outer loop"); // does not print 
    } // end of outer loop 
    System.out.println("Good Bye"); 

這輸出一些更多的討論

Hello 
Good Bye 

你可以在這裏弄清楚這個概念。

  • 有一種標記for循環調用outer並有內部while循環
  • 內的循環正在被執行時,它遇到break outer;聲明
  • outer for loopSystem.out.println"Outer loop"聲明,但不得到印刷。
  • 這是因爲break outer使控制跳出標記for循環直接

現在這個例子對continue聲明

outer: for (int i = 0; i < 5; i++) { 
     for (int j = 0; j < 5; j++) { 
      System.out.println("Hello"); 
      continue outer; 
     } // end of inner loop 
     System.out.println("outer"); // this won't print 
    } // end of outer loop 
    System.out.println("Good bye"); 

這將打印

Hello 
Hello 
Hello 
Hello 
Hello 
Good bye 
  • 有標有for循環和內部for循環
  • 內部for循環打印Hello並繼續到outer循環。
  • 因此,跳過內部for循環下方的語句,並且outer循環繼續執行。
  • 截至outer for循環結束後,Good Bye打印

希望這一切都清楚了。

+0

感謝Prasad的非常明確的例子!順便說一句,你沒有'System.out.println(「Good Bye」);'; D – Rendy

+0

發生錯誤,無意中複製粘貼它:) ..謝謝指出它Rendy –

+0

快樂學習夥計:) –

0

group_skip是一個標籤用於諸如休息的事情。 (也跳轉到其他語言跳轉)

在java中,它專門用於從標籤標識的代碼塊中斷開,其行爲與while循環中的break語句相似,除了從標籤代碼塊中斷開。

Here是在話題

5

當過我們用簡單的break語句那麼我們只能從最內側的循環控制轉移到最外部(如果我們有循環嵌套)。對於exampel

for(int i=0; i < 10; i++){ 
    if(i==5){ 
     break; 
    } 
} 
statement x; 

將控制簡單地轉移到聲明X。但是如果你在嵌套循環中使用它,那麼它將以不同的方式工作。

for(int i=0; i < 10; i++){ 
for(int j=0; j < 10; j++) 
    if(i==5){ 
     break; 
    } 
} 
statement y; 
} 
statement x; 

在這種情況下,它會發送控制,語句y。如果你想把控制從最內層的循環發送到最外層的循環或者循環外面,那麼你需要這樣一個帶有標籤的break語句。只是從你自己做到這一點,你會看到有趣的輸出.. :)