プログラマメモ2 - programmer no memo2

if文のネストでのelseは好きではない 2007/04/07

好き嫌いでいいますと、if文のネストでのelseは好きではないです。

僕はreturnで抜けれるならreturnで抜けるコーディングを好みます。
それができない場合は、もちろん多々多々多々あります。

javaでは、if文のネストから抜けるのには、break ラベル;を使用します。
かっこわるい感じがしますが。


public class TestIf {

public static void main(String[] args) {

State state = new State();
state.state1 = true;
state.state2 = true;
a(state);
}

static class State {
boolean state1;
boolean state2;
}

protected static void a(State st) {

// breakを使ってif文のネストを抜ける
a: if (st.state1) {
if (st.state2) {
System.out.println("a @_@1");
break a;
}
System.out.println("a @_@2");
}

// この書き方は i am not like.二番目のifのelseが好きではない。
b: if (st.state1) {
if (st.state2) {
System.out.println("b @_@1");
} else {
System.out.println("b @_@2");
}
}
}
}

: