1-4: 補足:返り値の利用のバリエーション

返り値の扱いについて、呼び出し側、利用側での記述の方法について補足しておきます。


メソッドは return の命令があるとそこで仕事を終了し、呼び出された側に処理が戻ります。 return の命令は複数用意することができます。 ただし返り値として返すことができる値は、1回の呼び出しごとに常に1個に限られます。 見かけ上、複数の値を返す記述があっても、選択されるのはそのうちの1つにしかなりません。


public class ReturnTest1 {

    public static void main( String[] args ) {

        double z;
        z = bigger( 10.0, 100.0 );
        System.out.println( "Return value is " + z );
    }

    public static double bigger( double x, double y ) {

        if( x > y ) {
            return x;
        }
        else {
            return y;
        }
    }
}
 

返り値が boolean型のメソッドの場合、たいてい2つの値のいずれかを返す形式になります。


public class ReturnTest3 {

    public static void main( String[] args ) {

        boolean b;
        b = isEquals( 10.0, 100.0 );
        System.out.println( b );
    }

    public static boolean isEquals( double x, double y ) {

        if( x == y ) {
            return true;
        }
        else {
            return false;
        }
    }
}
 

メソッドを呼び出した側では、その返り値の値を受け取って利用することができます。 同じ型の変数を宣言しておき、その値として代入する形式が一番わかりやすいでしょう。 もしプログラムの後の部分で、 返り値の値を何度も参照する可能性がある場合には、この形式にしなければなりません。 しかし、返り値の値を「その場で1回だけ利用する」というような場合には、 メソッドそのものを返り値として扱ってかまいません。 計算の対象にしたり、メソッドの呼び出しをさらに他の呼び出しの引数に与えたりすること も可能です。
以下の2つの記述の意味はまったく同じです。


        double z;
        z = bigger( 10.0, 100.0 );
        System.out.println( z );

        System.out.println( bigger( 10.0, 100.0 ) );