如有錯誤或遺漏,敬請指正!
在Donald Kunth的《Structured Programming with goto statements》一文中指出:無限制地使用goto語句确實是導緻錯誤語句的根源,但在某些情況下,偶爾使用goto跳出循環還是有益處的。
Java保留了goto關鍵字,但是并沒有實作它。Java為了支援goto語句的程式設計風格,提供了帶有标簽的break語句,這是功能受到嚴格限制的“goto語句”。
break語句的格式:
label:statement {
...
break label;
...
};
當觸發break label時,會跳出整個statement語句,然後繼續執行statement後面的語句。
注意:
break label語句隻能跳出語句,并且隻能跳出緊跟在label後的一個語句。
Java中break語句在不帶有标簽時,隻能跳出其所在的最内層循環;當break語句帶有标簽時,則會跳出其所在循環的所有循環。
來看一個break label語句的例子:
public class BreakLabelDemo {
public static void main(String[] args) {
label_dem01: {
System.out.println("Hello break label demo1");
for (int i = ; i < ; i++) {
for (int k = ; k < ; k++) {
if (k + i == ) {
System.out.println("break label happend");
break label_dem01;
}
}
}
}
System.out.println("beak all loop now");
}
}
程式運作結果:
Hello break label demo1
break label happend
beak all loop now