, aix: ! . , break, continue return , .
, ,
private int r;
void f()
{
distinction({void => codeBlock1()}, {void => codeBlock4()}, {void => f()},
{void => distinction( {void => codeBlock2()},{void => codeBlock4()},
{void => f()}, {void => codeBlock3()} )
});
}
void distinction( {void=>void} startingBlock, {void=>void} r0Block, {void=>void} r2Block, {void=>void} r3Block){
startingBlock.invoke();
r = check();
if(r == 0)
r0Block.invoke();
else if(r == 1)
{}
else if(r == 2)
r2Block.invoke();
else if(r == 3)
r3Block.invoke();
}
. , r0Block r2Block , codeBlock4() f() (). () f(). Java <= 7 invoke(), 4 codeBlock1 - codeBlock4. , , , - codeBlocks break/return/continue-orgy.