我有没有办法在Java中采用C#的goto语句?
答案 0 :(得分:4)
在Java中没有直接等同于goto概念。 您可以使用中断并继续。
查看here带有break的标签语句并继续。
答案 1 :(得分:3)
答案 2 :(得分:2)
没有确切的等价物,但Java处理了最合法的用例,即当你想从循环内部转到某个标签时。在这种情况下,您可以使用break:
outerLoop:
for (int i = 0; i < n; i++) {
t = A[[i]][j];
for (int z = 0; z < l; z++) {
if (arrays[z].contains(t)) {
continue outerLoop;
}
}
}
中的示例
答案 3 :(得分:1)
标记语句。
答案 4 :(得分:1)
答案 5 :(得分:1)
有命名的块,您可以使用带标签的break
语句:
loop:
for (int i = 0; i < 10; ++i)
break loop;
或者
label: {
if(something)
break label;
}
可以在 Branching Statements 中找到更多信息。但除此之外,你没有真正的转到声明。
答案 6 :(得分:-3)
有没有办法在JAVA中采用C#的goto语句?
java中的goto语句是保留关键字。但是它没有以任何方式实现。可能有计划将它包含在java引擎中。
回答你的问题。您可以使用labeled break,它与goto:
非常相似class BreakWithLabelDemo {
public static void main(String[] args) {
int[][] arrayOfInts = {
{ 32, 87, 3, 589 },
{ 12, 1076, 2000, 8 },
{ 622, 127, 77, 955 }
};
int searchfor = 12;
int i;
int j = 0;
boolean foundIt = false;
search:
for (i = 0; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length;
j++) {
if (arrayOfInts[i][j] == searchfor) {
foundIt = true;
break search;
}
}
}
if (foundIt) {
System.out.println("Found " + searchfor +
" at " + i + ", " + j);
} else {
System.out.println(searchfor +
" not in the array");
}
}
}
类似的问题已被解答here