有没有办法可以在 Java 中采用 C# 的 goto 语句?
问问题
2236 次
7 回答
4
Java 中没有直接等效的 goto 概念。您可以使用 break 和 continue。
在此处查看带有 break 和 continue 的标记语句。
于 2012-10-08T13:08:43.133 回答
3
于 2012-10-08T13:09:21.270 回答
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;
}
}
}
另请参阅Oracle 教程中的示例
于 2012-10-08T13:09:26.590 回答
1
用 break 和 continue标记语句。
于 2012-10-08T13:09:05.400 回答
1
有命名块,你可以有一个带标签的break
语句:
loop:
for (int i = 0; i < 10; ++i)
break loop;
或者
label: {
if(something)
break label;
}
更多信息可以在分支语句中找到。但除此之外,您没有真正的 goto 语句。
于 2012-10-08T13:12:06.480 回答
-3
有没有办法可以在 JAVA 中采用 C# 的 goto 语句?
java中的goto语句是保留关键字。但是,它没有以任何方式实现。可能有计划将它包含在 java 引擎中。
回答你的问题。您可以使用标记的 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");
}
}
}
在这里提出了类似的问题
于 2012-10-08T13:08:48.703 回答