Okapi Project

return(りたーん)

バージョン
2004 年 01月 05 日 Ver.1.0
作成者
H.Izumi ( Xware )

目的

呼び出したメソッドの制御を呼び出し元に戻したい!

returnってなに?

return 文は実行しているメソッドから処理の制御を呼び出し元に戻すときに使用します。その際に、戻り値を返す場合戻り値を返さない場合があります。戻り値を返却する際は実行するメソッドで戻り値の型を設定が必要です。ちなみに値を返さない return 文は省略可能です。

returnの説明

return の記述形式

以下が、return の記述例になります。

class 戻り値の型 メソッド名(){
    処理;
    return 戻り値;
}
戻り値の型
戻り値の型を記述します。
メソッド名
任意でメソッド名を記述します。
処理
任意で処理を記述します。
戻り値
任意で戻り値を記述します。

returnの使い方

return 文のあるメソッドの作成

以下は、return 文を使って呼び出し元に制御を戻す簡単なプログラムの例です。

public class ReturnTest {
    public void returnTest(){
        System.out.println("returnTestメソッドが呼ばれました。");
		
        //returnで処理を呼び元に戻す
        return;
    }
}

以下が上記の「ReturnTest」クラスを呼び出すメイン関数を持つクラスです。

public class MainTest {
    
    public static void main(String[] args){
        ReturnTest rt = new ReturnTest();
        //returnTestメソッドの呼び出し
        rt.returnTest();
        System.out.println("制御が戻りました。");
    }
}

以下が実行結果です。

returnTestメソッドが呼ばれました。
制御が戻りました。

ポイント

ヒント

return 文の利用方法

処理の制御を戻すには return 文の記述が必要ですが、return 文は省略することも出来ます。上記のプログラムの例では、return 文を記述してもしなくても実行結果は同じになります。一見使い道が無いように見えてしまう return 文ですが、以下のプログラムのように利用することで有効に利用することが出来ます。

public class ReturnTest {
    public void returnTest() {
        System.out.println("returnTestメソッドが呼ばれました。");

        //String型の配列の作成
        String str[] = new String[4];
        str[0] = "TEST";
        str[1] = "test";
        str[2] = "Test";
        str[3] = "TEst";

        for (int i = 0; i < str.length; i++) {

            if (str[i].equals("Test")) {
                System.out.println(i + "番目で処理を戻します。");
                //returnで処理を呼び元に戻す
                return;
            } else {
                System.out.println(i + "番目です。");
            }
        }
    }
}

以下が上記の「ReturnTest」クラスを呼び出すメイン関数を持つクラスです。

public class MainTest {
    
    public static void main(String[] args){
        ReturnTest rt = new ReturnTest();
        //returnTestメソッドの呼び出し
        rt.returnTest();
        System.out.println("制御が戻りました。");
    }
}

以下が実行結果になります。

returnTestメソッドが呼ばれました。
0番目です。
1番目です。
2番目で処理を戻します。
制御が戻りました。

上記の実行結果をみてわかるように、配列の三番目で処理の制御を return 文で戻す記述しているので、for 文で繰り返し処理が行われている途中であっても繰り返し処理を抜けて制御が呼び出し元に戻ったことがわかります。

return 文を使う際の注意点

return 文を記述した先に処理を記述すると、到達不能コードとしてコンパイルエラーになってしまいます。以下はそのプログラムの例です。

public class ReturnTest {
    public void returnTest(){
        System.out.println("returnTestメソッドが呼ばれました。");
		
        //returnで処理を呼び元に戻す
        return ;
        System.out.println("到達不能コードです。");
    }
}

以上のように記述すると 7 行目でコンパイルエラーになってしまいます。

戻り値を返す

以下は、戻り値に「int 型」と「String 型」が存在し、その各々のメソッドを呼び出すメインメソッドがあるプログラムの例です。
public class ReturnTest {
    public static void main(String[] args) {
        new ReturnTest();
    }
    public ReturnTest() {
        System.out.println(this.intM());
        System.out.println(this.stringM());
    }
    //int型を返すメソッドの作成
    public int intM() {
        int i = 10;
        //iの値を返します。
        return i;
    }
    //String型を返すメソッドの作成
    public String stringM() {
        String str = "ストリングの文字列が返りました。";
        //strの値を返します。
        return str;
    }
} 

以下が実行結果です。

10
ストリングの文字列が返りました。

関連


Copyright © 2003 - 2006 Okapi Project All Rights Reserved.