java 中跳轉語句使用break、continue和標簽,各自或組合完成相應的功能。
今天做題時遇到關於標簽命名規范,順便將跳轉語句語法都看了一遍,很有收獲。
在《Java編程思想》一書中,作者詳細闡述,現將案例代碼寫在下面:
public class LabeledFor { public static void main(String[] args) { int i=0; outer: for(;true;){ inner: for(;i<10;i++){ System.out.println("i="+i); if(i==2){ System.out.println("continue"); continue; } if(i==3){ System.out.println("break"); i++; //otherwise i never gets incremented break; } if(i==7){ System.out.println("continue outer"); i++; //otherwise i never gets incremented continue outer; } if(i==8){ System.out.println("break outer"); break outer; } for(int k=0;k<5;k++){ if(k==3){ System.out.println("continue inner"); continue inner; } } } } } }
運行結果見下圖:
i=0 continue inner i=1 continue inner i=2 continue i=3 break i=4 continue inner i=5 continue inner i=6 continue inner i=7 continue outer i=8 break outer
自認為比較重要的一點是,break中斷for循環,而且是在抵達for循環的末尾之前,也就是說,遞增表達式將不會執行。continue確不會跳過遞增語句。
同樣的,這個例子中,當i==7的情況下,continue outer語句會跳到循環頂部,而且也會跳過遞增。
如果沒有break outer,就沒有辦法從內部循環里跳出外部循環。這是由於break本身只能中斷最內層的循環(continue同樣如此)。
如果想中斷同時退出,簡單地用一個return即可。