Java字节码中的奇数模式

Mar*_*gen 2 java decompiling bytecode

我一直在看一些Java字节码,我一直在寻找一个奇怪的模式,我似乎无法转化为任何合理的Java结构:

    if ( <cond1> )
        goto Label;

    do {
        <code1>
Label:
        <code2>
    } while ( <cond2> );
Run Code Online (Sandbox Code Playgroud)

是否有任何合理的Java构造可以反编译为?我能想到的是非常复杂的模式,它引入了额外的状态来跟踪它是否是循环的第一次迭代.

Lou*_*man 5

for (init condition for which cond2 reduces to cond1; cond2; code1) {
  code2;
}
Run Code Online (Sandbox Code Playgroud)