if-else文をスマートに書く

  • 2019年6月8日
  • Java

ガード節(たぶん読み方は「がーどせつ」)を使って冗長なif-else文をスマートに書きましょう。以下のコードがあります。4つの条件式で判定し、どれにもあてはまらなかったらtrueを出力します。

if (number % 2 != 0) {
    return;
} else {
    if (number * number == 9999) {
        return;
    } else {
        if (String.valueOf(number).contains("str")) {
          return;
        } else {
            if (Long.valueOf(number).equals(100)) {
                return;
            } else {
                System.out.println("true");
            }
        }
    }
}

 

可読性が良いとは言えないですよね。判定文だけでみると17行ありますがガード節を使うと以下のように5行で書くことができます

if (number % 2 != 0) return;
if (number * number == 9999) return;
if (String.valueOf(number).contains("str")) return;
if (Long.valueOf(number).equals(100)) return;
System.out.println("true");

 

このように、最初にreturnになる条件をまとめてしまえばスマートになり可読性がグンと上がります。おためしあれ。