「打ち切りreturn」と「早期return」の違いをわかりやすく解説!

こんにちは。ゆうせいです。

Javaのコードを書いていると、「return」を使って処理を終了させることがありますよね。しかし、その中でも 「打ち切りreturn」「早期return」 という概念が登場します。どちらも 「returnで処理を終了させる」 という点は同じですが、意味や使い方が異なります。

このブログでは、それぞれの違いを 具体的なコード例 とともに解説します!


1. 「打ち切りreturn」とは?

「打ち切りreturn」とは、処理の途中で return を使い、現在のメソッドの実行を終了させること を指します。

主に 「特定の条件を満たしたら、それ以降の処理を実行しない」 という意図で使います。

例:配列の中に特定の値があったら、すぐに終了する

public class Main {
    public static void main(String[] args) {
        int[] numbers = {1, 3, 5, 7, 9};
        findNumber(numbers, 5);
        findNumber(numbers, 2);
    }

    public static void findNumber(int[] array, int target) {
        for (int num : array) {
            if (num == target) {
                System.out.println("見つかりました: " + target);
                return; // ここで処理を打ち切る
            }
        }
        System.out.println("見つかりませんでした: " + target);
    }
}

実行結果

見つかりました: 5
見つかりませんでした: 2

なぜ return を使うのか?

return を使わなかった場合、すべての要素を最後までチェックすることになり、不要な処理が走る可能性があります。return を使うことで、不要なループを防ぎ、無駄な計算を避けられる のがメリットです。


2. 「早期return」とは?

「早期return(early return)」は、メソッドの冒頭で特定の条件を満たしたら処理を終了し、後続の処理を行わないようにすること です。

例:引数が null の場合、すぐに return する

public class Main {
    public static void main(String[] args) {
        printName("田中");
        printName(null);
    }

    public static void printName(String name) {
        if (name == null) {
            System.out.println("名前が null です。処理を終了します。");
            return; // ここで処理を終了
        }

        System.out.println("こんにちは、" + name + " さん!");
    }
}

実行結果

こんにちは、田中 さん!
名前が null です。処理を終了します。

早期returnを使うメリット

  • ネストが浅くなり、コードの可読性が向上する
  • 不要な処理を省ける
  • 異常なケースを最初に排除できる

例えば、次のようなコードでは、ネストが深くなって可読性が悪くなります。

public static void printName(String name) {
    if (name != null) {
        System.out.println("こんにちは、" + name + " さん!");
    } else {
        System.out.println("名前が null です。処理を終了します。");
    }
}

この場合、「まず異常ケースをチェックして return する」 ことで、よりシンプルに書けます。


3. 「打ち切りreturn」と「早期return」の違いまとめ

比較項目打ち切りreturn早期return
意味途中で処理を打ち切る早い段階で処理を終了する
目的これ以上処理が不要なら止める異常ケースを最初に排除する
使う場所ループや条件分岐の途中メソッドの最初
コードの効果無駄なループや処理を減らすネストを浅くして可読性を上げる

4. どちらを使うべきか?

異常ケースを最初にチェックして処理を省略したい → 早期return
ループや処理の途中で、特定の条件を満たしたら終了したい → 打ち切りreturn

実際の開発では、「早期return」と「打ち切りreturn」の両方を適切に使い分けることで、可読性が高く、無駄のないコード を書くことができます!


5. まとめ

  • 「打ち切りreturn」 は処理の途中で終了し、無駄なループや計算を避ける。
  • 「早期return」 はメソッドの最初で異常ケースを排除し、ネストを浅くする。
  • どちらも「無駄な処理を減らす」ことが目的 だが、適用するタイミングが異なる。

これらを意識すると、スッキリしたコード を書けるようになります!

今後Javaのコードを書くときは、「この return は早期return?それとも打ち切りreturn?」と意識してみてくださいね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。