1

有没有办法可以在 Java 中采用 C# 的 goto 语句?

4

7 回答 7

4

Java 中没有直接等效的 goto 概念。您可以使用 break 和 continue

此处查看带有 break 和 continue 的标记语句。

于 2012-10-08T13:08:43.133 回答
3

Java中没有 goto 语句

与 C 和 C++ 不同,Java 编程语言没有 goto 语句。

最接近的是continuebreak语句,可以与标签结合使用,以退出循环。

于 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

阅读有关在 Java 中使用标签语句的信息。

问题

流量控制

于 2012-10-08T13:10:29.117 回答
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 回答