Java 中 goto 语句的替代方法
Java中goto关键字的替代函数是什么?
因为Java没有goto。
您可以使用带标签的 BREAK 语句:
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;
}
}
}
但是,在正确设计的代码中,您不需要 GOTO 功能。
Java中没有任何与这个概念直接等效的概念。有一些结构允许您使用经典做一些事情。goto
goto
break
continue
break <label>
continue <label>
return
这些 Java 构造都不允许您在与当前语句相同的嵌套级别上向后分支或分支到代码中的某个点。它们都跳出一个或多个嵌套(范围)级别,并且它们(除了)向下跳。这种限制有助于避免旧的BASIC,FORTRAN和COBOL代码2中固有的goto“意大利面条代码”综合症。continue
1- 异常最昂贵的部分是实际创建异常对象及其堆栈跟踪。如果您确实需要对“正常”流控制使用异常处理,则可以预先分配/重用异常对象,或者创建一个重写 fillInStackTrace()
方法的自定义异常类。缺点是异常的printStackTrace()
方法不会给你有用的信息......如果您需要打电话给他们。
2 - 意大利面条式代码综合症催生了结构化编程方法,在这种方法中,您对可用语言结构的使用受到限制。这可以应用于BASIC,Fortran和COBOL,但它需要注意和纪律。完全摆脱goto
是一个务实的更好的解决方案。如果你把它放在一种语言中,总会有一些小丑会滥用它。