1. 程式人生 > >原來java中也有類似goto語句的標籤啊--java label標籤(一)

原來java中也有類似goto語句的標籤啊--java label標籤(一)

文章來源  http://blog.csdn.net/sshi1984/article/details/3915452
goto語句的危害:
     goto語句是在原始碼級上的跳轉,這使其招致了不好的聲譽。若一個程式總是從一個地方跳到另一個地方,還有什麼辦法來控制程式的流程。
java中的“goto”:
     雖然Java中goto語句只是java的一個保留字,沒有起任何作用,但是我今天在使用continue和break語句時,還是發現了其中又goto語句的影子。因為continue和break語句都支援跳到一個Label的位置。下面是具體的用法:


   inner:
   for( int i = 0 ; i<3 ;i++ ){
    System.out.println("iiii===>"+i);
    for( int j =0 ; j<5; j++ ){
     if( j == 1 )
      continue inner;
     System.out.println("j===>"+j);
    }
   }


上面一段語句的輸出為


iiii===>0
j===>0
iiii===>1
j===>0
iiii===>2
j===>0


一般的 continue語句都是跳出當前迴圈,但是這個會跳出到標記inner的位置。從這段程式可以看出,當跳到標籤inner的時候是繼續進行for迴圈,而不是重新開始。
Ps:
在java中,標籤起作用的唯一的地方是在迭代語句之前。
在java中需要使用標籤的唯一理由就是因為有迴圈巢狀的存在,而且想從多層巢狀中break或continue。