goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用(Java没有goto)。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子,那就是带标签的break和continue。
“标签”是指后面跟一个冒号的标识符,例如:“label:”。对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。
【示例】带标签的break使用
// 外侧循环
Outer:for(int i = 0; i < 10; i++) {
System.out.println("i:" + i);
// 内侧循环
for(int j = 0; j < 10; j++) {
if(j == 3) {
// break; // 作用于“内侧循环”
break Outer; // 作用于“外侧循环”
}
System.out.println("-->j:" + j);
}
}
【示例】带标签的continue使用
// 外侧循环
Outer: for (int i = 0; i < 10; i++) {
System.out.println("i:" + i);
// 内侧循环
for (int j = 0; j < 10; j++) {
if (j == 3) {
// continue; // 作用于“内侧循环”
continue Outer; // 作用于“外侧循环”
}
System.out.println("-->j:" + j);
}
}
建议:现实开发中,不要使用带标签的break和continue。
ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。