LoginSignup
0
1

More than 5 years have passed since last update.

[リファクタリング] for文のネスト2 (個人用)

Posted at

深いネストのリファクタリング。
returnできるところでさっさとreturnする。



・よくある深いネストのケース
改善前

Java
public int func1(int a, int b)
{
    int result;
    if (a > 10)
    {
        if (a > 20)
        {
            if (a > 30)
                result = b;
            else
                result = 3;
        }
        else
            result = 2;
    }
    else
        result = 1;

    return result;
}

改善後

Java
public int func1(int a, int b)
{
    if (a < 10)
        return 1;

    if (a < 20)
        return 2;

    if (a < 30)
        return 3;

    return b;
}



・意図したデータが与えられたかどうかのチェックを行うたびにネストさせるケース
改善前

Java
public bool isValid(Data a)
{
    if(a != null)
    {
        if(a.Count > 0)
        {
            if(a.Error == null)
            {
                if (a.Result != null)
                    return true;
            }
        }
    }
    return false;
}

改善後

Java
public bool isValid(Data a)
{
    if (a == null)
        return false;

    if (a.Count > 0)
        return false;

    if (a.Error == null)
        return false;

    if (a.Result != null)
        return true;
    else
        return false;
}





参照
http://anopara.matrix.jp/2014/06/27/do-not-write-deep-nested-code/

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1