Java中C#的goto语句的等价物是什么?

时间:2012-10-08 13:06:27

标签: java android goto

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

7 个答案:

答案 0 :(得分:4)

在Java中没有直接等同于goto概念。 您可以使用中断并继续

查看here带有break的标签语句并继续。

答案 1 :(得分:3)

no goto statement in Java

  

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

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

答案 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;
        }
    }
}

另请参阅Oracle's tutorial

中的示例

答案 3 :(得分:1)

带有中断并继续的

标记语句

答案 4 :(得分:1)

了解如何在Java中使用标签语句。

question

flow control

答案 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