人工的な例だけど、こういうの
// fallthru しまくり注意
switch (x) {
default:
a();
case 0:
if (b()) {
case 1:
if (c()){ break; }
case 2:
d();
} else {
if (e()){ return; }
case 3:
f();
}
e();
}
上記は a〜e は引数書かなかったけど、実際には副作用付きのめんどくさい引数が何個もあるとして。
上記のような邪悪な文法を使わないように書き換えるのはわりと難しい。