天天看點

Java中帶标簽的break語句

如有錯誤或遺漏,敬請指正!

在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