是否有任何语法允许您从一行跳到另一行?
示例:
System.out.println("line");
System.out.println("line2");
System.out.println("line3");
System.out.println("line4");
//goto line2 or something like that??
答案 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
具有适当的值。
对于任何向后跳跃,您需要do
或while
循环。
答案 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之类的语句可能会导致意大利面条代码