JavaA2Z

KAB-studio > プログラミング > JavaA2Z > returnとは

return

日本語 戻る
英語 return
ふりがな りたーん
フリガナ リターン

解説

メソッドを終了する予約語
 
ステートメントの一種。
「return 戻り値;」と書くことで、戻り値を返しつつメソッドを終了することができる。また、戻り値voidの場合には「return;」と書くことでメソッドを終了することができる。
戻り値void以外メソッドは必ず値を返さなければならないため、そのメソッドは必ずreturnで値を返して終了する必要がある。
returnでメソッドを終了すると、メソッド内のそれ以降の処理はわれない。

ただし、特別にfinallyだけはreturn後も処理される。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        Sample sample = new Sample();

        // notReturn()メソッドを呼び出します。
        sample.notReturn();
        // Sample#notReturn()

        // returnInt()メソッドを呼び出します。
        // returnに渡された値は戻り値として返されるので
        // 呼び出し元で受け取ることができます。
        int result = sample.returnInt();
        System.out.println( result );
        // 100

        // ifReturn()メソッドを呼び出します。
        result = sample.ifReturn();
        System.out.println( result );
        // 200
    }

    /**
     * 戻り値の型がvoidのメソッド。
     */
    private void notReturn()
    {
        System.out.println( "Sample#notReturn()" );
        // 戻り値を渡さずにreturnでメソッドを終了させます。
        return;

        // 戻り値を無理矢理返そうとするとコンパイルエラーになります。
        // ※コンパイルエラーの例
        // return 100;
        // ※エラーメッセージ
        // void メソッドは値を戻すことができません。
        // ※コンパイルエラーの例ここまで
    }

    /**
     * 戻り値の型がintのメソッド。
     */
    private int returnInt()
    {
        // int型の値を返しつつメソッドを終了させます。
        return 100;
        // このメソッドは戻り値の型がvoidではないので、
        // returnで戻り値を返さないとコンパイルエラーになります。
        // ※コンパイルエラーの例
        // (上の「return 100;」を削除した場合)
        // ※エラーメッセージ
        // このメソッドは型 int の結果を戻す必要があります。
        // ※コンパイルエラーの例ここまで
    }

    /**
     * 状況によってreturnが変わるメソッド。
     */
    private int ifReturn()
    {
        // 一応のフラグ。
        boolean b = true;

        if( b )
        {
            // bにはtrueが入っているのでこちらに来ます。
            return 200;
            // ここでメソッドが終了したので、これ以降の処理は
            // 行われません。ブロックのネストの深さも関係ありません。
            // (ただし、finallyだけは通ります)。

            // 絶対に処理されない箇所に、何か処理が書かれていると
            // コンパイルエラーになります。
            // ※コンパイルエラーの例
            // System.out.println( "Sample#ifReturn()" );
            // ※エラーメッセージ
            // 到達不能コード
            // ※コンパイルエラーの例ここまで
        }

        // bにはtrueが格納されているので、こちらには絶対来ません。
        // ただし、コンパイラは「bには必ずtrueが入っている」と
        // 判断できないので、上記のようなコンパイルエラーは
        // 発生しません。
        System.out.println( "Sample#ifReturn()" );

        // そして、コンパイラは「ここに来る可能性がある」と
        // 判断するため、必ずreturnで値を返す必要があります。
        return 300;
        // ※コンパイルエラーの例
        // (上の「return 300;」を削除した場合)
        // ※エラーメッセージ
        // このメソッドは型 int の結果を戻す必要があります。
        // ※コンパイルエラーの例ここまで
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        Sample sample = new Sample();

        // notReturn()メソッドを呼び出します。
        sample.notReturn();
        // Sample#notReturn()

        // returnInt()メソッドを呼び出します。
        // returnに渡された値は戻り値として返されるので
        // 呼び出し元で受け取ることができます。
        int result = sample.returnInt();
        System.out.println( result );
        // 100

        // ifReturn()メソッドを呼び出します。
        result = sample.ifReturn();
        System.out.println( result );
        // 200
    }

    /**
     * 戻り値の型がvoidのメソッド。
     */
    private void notReturn()
    {
        System.out.println( "Sample#notReturn()" );
        // 戻り値を渡さずにreturnでメソッドを終了させます。
        return;

        // 戻り値を無理矢理返そうとするとコンパイルエラーになります。
        // ※コンパイルエラーの例
        // return 100;
        // ※エラーメッセージ
        // void メソッドは値を戻すことができません。
        // ※コンパイルエラーの例ここまで
    }

    /**
     * 戻り値の型がintのメソッド。
     */
    private int returnInt()
    {
        // int型の値を返しつつメソッドを終了させます。
        return 100;
        // このメソッドは戻り値の型がvoidではないので、
        // returnで戻り値を返さないとコンパイルエラーになります。
        // ※コンパイルエラーの例
        // (上の「return 100;」を削除した場合)
        // ※エラーメッセージ
        // このメソッドは型 int の結果を戻す必要があります。
        // ※コンパイルエラーの例ここまで
    }

    /**
     * 状況によってreturnが変わるメソッド。
     */
    private int ifReturn()
    {
        // 一応のフラグ。
        boolean b = true;

        if( b )
        {
            // bにはtrueが入っているのでこちらに来ます。
            return 200;
            // ここでメソッドが終了したので、これ以降の処理は
            // 行われません。ブロックのネストの深さも関係ありません。
            // (ただし、finallyだけは通ります)。

            // 絶対に処理されない箇所に、何か処理が書かれていると
            // コンパイルエラーになります。
            // ※コンパイルエラーの例
            // System.out.println( "Sample#ifReturn()" );
            // ※エラーメッセージ
            // 到達不能コード
            // ※コンパイルエラーの例ここまで
        }

        // bにはtrueが格納されているので、こちらには絶対来ません。
        // ただし、コンパイラは「bには必ずtrueが入っている」と
        // 判断できないので、上記のようなコンパイルエラーは
        // 発生しません。
        System.out.println( "Sample#ifReturn()" );

        // そして、コンパイラは「ここに来る可能性がある」と
        // 判断するため、必ずreturnで値を返す必要があります。
        return 300;
        // ※コンパイルエラーの例
        // (上の「return 300;」を削除した場合)
        // ※エラーメッセージ
        // このメソッドは型 int の結果を戻す必要があります。
        // ※コンパイルエラーの例ここまで
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2010/02/14
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。