我一直在看一些Java字节码,我一直在寻找一个奇怪的模式,我似乎无法转化为任何合理的Java结构:
if ( <cond1> )
goto Label;
do {
<code1>
Label:
<code2>
} while ( <cond2> );
是否有任何合理的Java构造可以将其反编译为?我能想到的只是非常复杂的模式,它引入了额外的状态来跟踪它是否是循环的第一次迭代。
答案 0 :(得分:5)
for (init condition for which cond2 reduces to cond1; cond2; code1) {
code2;
}