caseの中でフラグを書き換えているんですけど、これどうなるんですかね。 そして、書き手が予想していた挙動は何なんですかね。。。
(実際は、switchのところで一度だけ評価されるので、フラグを書き換えてもcase 1は実行されず、flgに1が代入されるだけです)
public void hoge(int flg) {
switch (flg) {
case 0:
//何かの処理
flg = 1;
break;
case 1:
//何かの処理
break;
default:
//何かの処理
break;
}
}
ループしてないのは駄目だけど、switch内部での変数の書き換えは自前パーサを書く場合とかに状態遷移記述に至極普通に使う書き方です。 嗜好や良し悪しはあれど、「どうなるんですかね」じゃなく、言語仕様くらい把握した上でコードウンチクした方が良いのでは。
C言語での状態遷移マシンの実装などでよくある普通の書き方だと思う。Java だとState パターンなどクラスを活用した書き方をするだろうけど。