java中怎样任意跳转到指定行而不受循环语句限制
发布网友
发布时间:2022-05-14 15:56
我来回答
共1个回答
热心网友
时间:2023-10-23 11:19
您好,break label不是任意使用的,它只能直接用在代码块(for/while/switch/if/大括号)上,注意是“直接”,下面举例说明:
1.代码一(直接用在for上,这是最普遍的用法,正确):
int i = 1;
label:
for (int j = 1; j < 5; j++) {
if (j % 2 == 0)
break label;
System.out.println(j + "-----" + i);
}
2.代码二(注意这里加了大括号,所以构成了一个代码块,也正确)
label:
{
int i = 1;
for (int j = 1; j < 5; j++) {
if (j % 2 == 0)
break label;
System.out.println(j + "-----" + i);
}
}
3.代码三(错误,label没有直接用在代码块上,对比代码二,缺少了大括号包围)
label:
int i = 1;
for (int j = 1; j < 5; j++) {
if (j % 2 == 0)
break label;
System.out.println(j + "-----" + i);
}
4.代码四(错误,break label;没有包含在label标记的代码块中,代码三的错误也能用这个解释)
label: {
int i = 1;
}
for (int j = 1; j < 5; j++) {
if (j % 2 == 0)
break label;
System.out.println(j + "-----" + i);
}
综上所述,相比起C语言中goto的任意跳转,这个break label的使用并不是那么自由,需要多留意。
另外,不建议使用过多的这种语句,会破坏程序结构的完整性。
-----您的采纳是我们的动力-----