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 = 0; i < 10; i++) {
                for (int k = 0; k < 10; k++) {
                    if (k + i == 15) {
                        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

猜你喜欢

转载自blog.csdn.net/yumeizui8923/article/details/79442652