Java循環中標籤的作用

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

outer1:  
for(int i =0;i<4;i++){
   
     
    System.out.println("begin to itrate.    "+i);  
    for(int j =0;j<2;j++){
   
     
        if(i==2){
   
     
            continue outer1;  
//          break;  
        }  
        System.out.println("now the value of j is:"+j);  
    }  
    System.out.println("******************");  
} //加入Java開發交流君樣:756584822一起吹水聊天 

執行的結果是:

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後面不會出現一串*號了。
對比:

outer1:  
for(int i =0;i<4;i++){
   
     
    System.out.println("begin to itrate.    "+i);  
    for(int j =0;j<2;j++){
   
     
        if(i==2){
   
     
//          continue outer1;  
            break;  
        }  
        System.out.println("now the value of j is:"+j);  
    }  
    System.out.println("******************");  
}  
//加入Java開發交流君樣:756584822一起吹水聊天

注:我們直接使用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 
****************** 
//加入Java開發交流君樣:756584822一起吹水聊天

-----------------------------------------------------------------分割線
我們再來看看break+標籤的效果


outer2:  
for(int i =0;i<4;i++){
   
     
    System.out.println("begin to itrate.    "+i);  
    for(int j =0;j<2;j++){
   
     
        if(i==2){
   
     
            break outer2;  
//          break;  
        }  
        System.out.println("now the value of j is:"+j);  
    }           System.out.println("******************");  
}  //加入Java開發交流君樣:756584822一起吹水聊天

結果:

begin to itrate.    0 
now the value of j is:0 
now the value of j is:1 
****************** //加入Java開發交流君樣:756584822一起吹水聊天
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中的標籤只適合與嵌套循環中使用。

image

最新2020整理收集的一些高頻面試題(都整理成文檔),有很多幹貨,包含mysql,netty,spring,線程,spring cloud、jvm、源碼、算法等詳細講解,也有詳細的學習規劃圖,面試題整理等,需要獲取這些內容的朋友請加Q君樣:756584822

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章