Java中的跳线?

时间:2013-05-17 12:07:47

标签: java goto

是否有任何语法允许您从一行跳到另一行?

示例:

System.out.println("line");
System.out.println("line2");
System.out.println("line3");
System.out.println("line4");

//goto line2 or something like that??

5 个答案:

答案 0 :(得分:3)

不,没有goto声明,但有几种解决方法:

do {
    //do stuff
    if (condition) break; //this will jump--+
    //do stuff                           // |
} while (false);                         // |
// here <-----------------------------------+

int id = 0;
while (true) {
    switch (id) {
        case 0:
            //do stuff
            if (condition) {id = 3; break;} //jumps to case 3:
        case 1:
            if (condition) {id = 1; break;} //jumps to case 1:
        // ...
    }
}

答案 1 :(得分:1)

您可以以环形方式实现此目的,例如使用switch语句:

switch (lineNum) {
  case 1: System.out.println("line 1");
  case 2: System.out.println("line 2");
  case 3: System.out.println("line 3");
  case 4: System.out.println("line 4");
}

现在您必须确保lineNum具有适当的值。

对于任何向后跳跃,您需要dowhile循环。

答案 2 :(得分:1)

Java 故意不支持goto。这是为了鼓励(强制)您使用适当的条件结构构建控制流。

在您的示例中,正确的方法是while循环:

System.out.println("line");
while (true) {
    System.out.println("line2");
    System.out.println("line3");
    System.out.println("line4");
}

如果您考虑一下,没有代码流模式就无法在不需要goto的情况下表达(可能需要偏离个人根深蒂固的习惯)。 可能想要使用goto的唯一一次是避免代码重复。如果您遇到这种情况,请将代码重组为可在需要时调用的单独方法,这是一个更清晰的解决方案。

答案 3 :(得分:0)

Java中没有goto,尽管它是一个保留关键字。

goto被认为是一个糟糕的编程结构,因此,它被排除在Java之外。

答案 4 :(得分:0)

你到底想要达到什么目的?您可以使用http://geekycoder.wordpress.com/2008/06/25/tipjava-using-block-label-as-goto/中的标签,无论如何使用goto之类的语句可能会导致意大利面条代码