Java - メソッドと返り値

メソッドと返り値

メソッドから呼び出し元へ返す値を返り値といいます。メソッドに返り値がある場合の書式は、以下のとおりです。

public static void main(String args[]){
  返り値のデータ型 変数 = メソッド名();
}

修飾子 返り値のデータ型 メソッド名(){
  ...
  return 返り値;
}
メソッドと返り値

返り値としてメソッドの呼び出し元に値を返す場合、メソッド名の前に返り値のデータ型を記述します。返り値を返さない場合は、データ型として void を記述します。

/* 返り値が int 型の例 */
private static int sample1(){
  ...
  return 100;
}

/* 返り値が void の例 */
private static void sample2(){
  ...
  return;
}
メソッドと返り値

メソッドの呼び出し元に返り値を返すには return 文を使用します。return 文の書式は、以下のとおりです。

return;

または

return 式;
メソッドと返り値

return 文が実行された時点でメソッドを終了し、呼び出し元へ処理が返ります。return 文はメソッド内の任意の位置に記述できますが、return 文が実行されるとそれ以降の処理は実行されません。

メソッドの呼び出し元に返り値を返す場合は、return 文の後に式として返り値を記述します。式は、値や変数を記述した場合にはその値が返ります。計算式などを記述した場合は、その式を評価した結果が返ります。

return 10;       /* 返り値は 10 */
return 4 * 5;    /* 返り値は 20 */
メソッドと返り値

return 文に指定する返り値のデータ型は、メソッド名の前に記述したデータ型である必要があります。また、return 文で指定できる値はひとつだけなので、呼び出し元に返すことができる返り値もひとつだけです。

ただし、返り値に配列を指定することで複数の値を呼び出し元に返すことが可能です。

public static void main(String args[]){
  int data[];

  data = sample();
  System.out.println(data[0]); // 10
  System.out.println(data[1]); // 20
}

private static int[] sample(){
  int data[] = new int[2];
  data[0] = 10;
  data[1] = 20;

  return data;
}
メソッドと返り値

また、return 文が実行された時点でメソッドを終了する性質を利用して、以下のような使い方も可能です。以下のサンプルコードは割り算を行うプログラムですが、n2 が 0 である場合はエラーとなるため、計算を行う前に 0 であるかどうかをチェックしています。もしも n2 が 0 である場合、計算を行わずにメッセージを表示してメソッドを終了しています。

public static void main(String args[]){
  sample(5, 0);
}

private static void sample(int n1, int n2){
  if (n2 == 0){
    System.out.println("0 除算エラー");
    return;
  }

  System.out.println(n1 / n2);
  return;
}
メソッドと返り値

関連記事