Java循環中標籤的做用(轉)

轉自:http://lihengzkj.iteye.com/blog/1090034spa

 

之前不知道在循環中能夠使用標籤。最近遇到後,舉得仍是有其獨特的用處的。我這麼說的意思是說標籤在循環中能夠改變循環執行的流程。而這種改變不是咱們之前單獨使用break或者是continue可以達到的。下面仍是看看實例吧。 
   blog

Java代碼   收藏代碼
  1. outer1:  
  2. for(int i =0;i<4;i++){  
  3.     System.out.println("begin to itrate.    "+i);  
  4.     for(int j =0;j<2;j++){  
  5.         if(i==2){  
  6.             continue outer1;  
  7. //          break;  
  8.         }  
  9.         System.out.println("now the value of j is:"+j);  
  10.     }  
  11.     System.out.println("******************");  
  12. }  
  13.       


執行的結果是: 
begin to itrate.    0 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    1 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    2 
begin to itrate.    3 
now the value of j is:0 
now the value of j is:1 
****************** 
注:當i=2的時候,continue outer1 使程序回到了outer1最開始循環的位置,開始下一次循環,這個時候執行的循環是i=3而不是從新從i=0開始。同時當使用continue outer1跳出內層循環的時候,外層循環後面的語句也不會執行。也就是是在begin to itrate.    2後面不會出現一串*號了。 
對比: string

Java代碼   收藏代碼
  1. outer1:  
  2. for(int i =0;i<4;i++){  
  3.     System.out.println("begin to itrate.    "+i);  
  4.     for(int j =0;j<2;j++){  
  5.         if(i==2){  
  6. //          continue outer1;  
  7.             break;  
  8.         }  
  9.         System.out.println("now the value of j is:"+j);  
  10.     }  
  11.     System.out.println("******************");  
  12. }  


注:咱們直接使用break的話,只是直接跳出內層循環。結果其實就能夠看出區別來: 
begin to itrate.    0 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    1 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    2 
****************** 
begin to itrate.    3 
now the value of j is:0 
now the value of j is:1 
****************** 
-----------------------------------------------------------------分割線 
咱們再來看看break+標籤的效果 it

Java代碼   收藏代碼
  1. outer2:  
  2. for(int i =0;i<4;i++){  
  3.     System.out.println("begin to itrate.    "+i);  
  4.     for(int j =0;j<2;j++){  
  5.         if(i==2){  
  6.             break outer2;  
  7. //          break;  
  8.         }  
  9.         System.out.println("now the value of j is:"+j);  
  10.     }           System.out.println("******************");  
  11. }  


結果: 
begin to itrate.    0 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    1 
now the value of j is:0 
now the value of j is:1 
****************** 
begin to itrate.    2 
注:從結果就能夠看出當i=2的時候,break+標籤 直接把內外層循環一塊兒停掉了。而若是咱們單獨使用break的話就起不了這種效果,那樣只是跳出內層循環而已。 
最後說一句,Java中的標籤只適合與嵌套循環中使用。class

相關文章
相關標籤/搜索