java中的保留字goto,目前没有使用,但可以用break和continue结合标签达到类似goto的效果。具体说明见下面代码后的注释
格式如下:
label1:
for(){
label2:
for() {
continue label1;//跳过label1当前的循环并开始label1的下一次循环。
break label1;//中断label1循环
continue label2;//跳过label2当前的循环并开始label2的下一次循环,效果和continue一样
break label2;//中断label2循环,但外层label1循环还会继续
}
}
注意,使用break中断了哪个for循环,对应for循环的步进也不会执行,需要特别注意可能导致的死循环问题,请参考test2()最后输出的i。
/**
* 输出乘法口诀
* @author Kent Chiang
*
*/
public class LabelItr {
public static void main(String[] args) {
//test1();
test2();
}
public static void test1() {
outer:
for(int i = 0;i <= 9;i++) {
inner:
for (int j = i; j <= 9;j++) {
if (j == 6) {
System.out.println("");
//continue inner;
continue outer;
}
System.out.print(i + "*" + j + "=" + (i*j) + "; ");
}
System.out.println("");
}
}
public static void test2() {
int i = 0;
outer:
for(;i <= 9;i++) {
inner:
for (int j = i; j <= 9;j++) {
if (j == 6) {
//System.out.println("");
break inner;
}
System.out.print(i + "*" + j + "=" + (i*j) + "; ");
}
System.out.println("");
}
System.out.println();
System.out.println(i);
}
}