【发布时间】:2012-12-21 09:46:24
【问题描述】:
实际上我正在尝试研究一个被 GOTO 语句混淆的代码 说..
private void fun()
{
if(somecondition)
goto LABEL3;
...
...
LABEL3:
return;
Exception e;
e;
if(true) goto LABEL3; else LABEL7;
...
...
LABEL7:
//some statements
}
在通过 IF 语句调用 LABEL3 时,
功能会停止吗?
LABEL7会被调用吗?
程序将如何进行?
这是一个反编译的 java 类文件
反编译的类文件,其中一些语句被 goto 替换(例如,带有 goto 和 IF 组合的 WHILE),使它们难以阅读。
编辑
因为我认为反编译的类文件将完全不符合 java 语法,所以我发布了这个问题,但反编译器通常用于生成伪代码,但保留了很少的本机语法。是的,没有 goto,但它只是虚拟关键字,是的 LABEL3 可能会返回而其他人无法访问。
【问题讨论】:
-
这是什么语言?问题标记为
[java],但代码显然不是Java。 -
只需调试它,您就会看到工作流程是什么。
-
我在
LABEL3中看到无法访问的代码,无论您使用什么语言。 -
Java 有一个保留关键字 GOTO,但它没有被使用...请指定应该用哪种语言编写
-
无论是什么语言,goto 标签都会跳转到那个标签。因为它后面包含'return',所以这里应该没有方法。
标签: java coding-style goto