カテゴリ: Javaのメソッド 更新日: 2025/05/02

Java の戻り値とは?メソッドから値を返す方法

105
Java の戻り値とは?メソッドから値を返す方法

新人と先輩の会話形式で理解しよう

新人

「Java でメソッドが値を返すことはできますか?」

先輩

「もちろんできるよ!メソッドが処理した結果を返す仕組みを『戻り値』というんだ。」

新人

「戻り値って何ですか?どうやって使うんですか?」

先輩

「それでは、Java の戻り値の基本から説明していくよ!」

1. Java の戻り値とは?(基本的な説明)

1. Java の戻り値とは?(基本的な説明)
1. Java の戻り値とは?(基本的な説明)

Java の「戻り値」とは、メソッドが処理を実行した後に、結果を呼び出し元へ返す仕組みのことです。

戻り値の基本的なイメージ

例えば、「2 つの数を足して合計を返すメソッド」を考えてみましょう。計算した結果を呼び出し元に返すことで、プログラム内で使うことができます。

戻り値を使った Java のメソッド


public class ReturnExample {
    public static void main(String[] args) {
        // メソッドを呼び出し、戻り値を受け取る
        int sum = add(5, 3);
        System.out.println("足し算の結果: " + sum);
    }

    // 戻り値のあるメソッド
    public static int add(int a, int b) {
        return a + b;
    }
}

足し算の結果: 8

このように、メソッド add は計算した結果を return キーワードを使って返し、それを変数 sum に代入しています。

2. 戻り値を使うメリット

2. 戻り値を使うメリット
2. 戻り値を使うメリット

戻り値を使うことで、メソッドの結果を他の処理に活用できるようになります。

戻り値を使うと何が便利?

  • ✔ 計算結果や処理結果を他の処理に活かせる
  • ✔ メソッドを再利用しやすくなる
  • ✔ プログラムの構造を整理しやすくなる

戻り値を使わない場合と比較

戻り値を使わずに、直接出力するメソッドを作ると、結果をプログラム内で活用できません。


public class NoReturnExample {
    public static void main(String[] args) {
        // 計算結果を使えない
        add(5, 3);
    }

    public static void add(int a, int b) {
        System.out.println("足し算の結果: " + (a + b));
    }
}

足し算の結果: 8

このように、add メソッドは直接出力するだけなので、計算結果を他で使うことができません。

戻り値を使った場合

一方で、戻り値を使えば計算結果を変数に保存して、他の処理にも活用できます。


public class ReturnExample {
    public static void main(String[] args) {
        int sum = add(5, 3);
        System.out.println("足し算の結果: " + sum);
        
        // 他の処理でも利用可能
        int doubleSum = sum * 2;
        System.out.println("結果を2倍: " + doubleSum);
    }

    public static int add(int a, int b) {
        return a + b;
    }
}

足し算の結果: 8
結果を2倍: 16

このように、戻り値を使えば、計算結果を他の処理に利用することができ、プログラムの柔軟性が向上します。

3. 戻り値を使う基本的な方法

3. 戻り値を使う基本的な方法
3. 戻り値を使う基本的な方法

Java のメソッドは、処理の結果を戻り値として返すことができます。基本的な使い方を理解するために、簡単な例を見てみましょう。

戻り値のあるメソッドの基本

メソッドの戻り値を指定するには、return キーワードを使います。


public class ReturnExample {
    public static void main(String[] args) {
        // メソッドを呼び出し、戻り値を変数に保存
        int result = getNumber();
        System.out.println("戻り値: " + result);
    }

    // 戻り値を持つメソッド
    public static int getNumber() {
        return 10;
    }
}

戻り値: 10

このように、getNumber メソッドは整数 10 を返し、それを変数 result に保存して表示しています。

4. 異なるデータ型の戻り値を扱う方法

4. 異なるデータ型の戻り値を扱う方法
4. 異なるデータ型の戻り値を扱う方法

戻り値は、整数(int)だけでなく、文字列(String)、小数(double)、真偽値(boolean)など、さまざまなデータ型を扱うことができます。

文字列を返すメソッド

以下のメソッドは、文字列の戻り値を持ちます。


public class StringReturnExample {
    public static void main(String[] args) {
        String message = getMessage();
        System.out.println(message);
    }

    public static String getMessage() {
        return "こんにちは!";
    }
}

こんにちは!

小数を返すメソッド

戻り値に double を指定すると、小数を返すことができます。


public class DoubleReturnExample {
    public static void main(String[] args) {
        double piValue = getPi();
        System.out.println("円周率: " + piValue);
    }

    public static double getPi() {
        return 3.14159;
    }
}

円周率: 3.14159

真偽値を返すメソッド

真偽値(boolean)を返すことで、条件分岐の判断に利用できます。


public class BooleanReturnExample {
    public static void main(String[] args) {
        boolean isAdult = checkAge(20);
        System.out.println("成人ですか?: " + isAdult);
    }

    public static boolean checkAge(int age) {
        return age >= 18;
    }
}

成人ですか?: true

このように、さまざまなデータ型の戻り値を扱うことで、柔軟なプログラムを作ることができます。

5. 戻り値を使って計算結果を返す方法

5. 戻り値を使って計算結果を返す方法
5. 戻り値を使って計算結果を返す方法

メソッドの戻り値を使うことで、計算結果をメソッドの外部で利用できます。例えば、数値を受け取って計算し、その結果を返す方法を見てみましょう。

足し算の結果を返すメソッド

以下のメソッドは、2 つの数を受け取り、合計を戻り値として返します。


public class SumReturnExample {
    public static void main(String[] args) {
        int total = addNumbers(10, 5);
        System.out.println("合計: " + total);
    }

    public static int addNumbers(int a, int b) {
        return a + b;
    }
}

合計: 15

割引価格を計算するメソッド

商品価格と割引率を受け取り、割引後の価格を計算して返すメソッドを作成できます。


public class DiscountExample {
    public static void main(String[] args) {
        double price = calculateDiscountPrice(5000, 0.1);
        System.out.println("割引後の価格: " + price + "円");
    }

    public static double calculateDiscountPrice(double price, double discountRate) {
        return price * (1 - discountRate);
    }
}

割引後の価格: 4500.0円

最大値を求めるメソッド

2 つの数を比較し、大きい方を返すメソッドを作ることもできます。


public class MaxValueExample {
    public static void main(String[] args) {
        int max = getMax(15, 20);
        System.out.println("最大値: " + max);
    }

    public static int getMax(int a, int b) {
        return (a > b) ? a : b;
    }
}

最大値: 20

このように、計算結果を戻り値として返すことで、より柔軟なプログラムを作ることができます。

6. 文字列や配列を戻り値として返す方法

6. 文字列や配列を戻り値として返す方法
6. 文字列や配列を戻り値として返す方法

戻り値には、整数や小数だけでなく、文字列や配列も指定できます。これにより、より多くのデータをメソッドの外部で活用できます。

文字列を戻り値として返す

以下のメソッドは、名前を受け取り、挨拶のメッセージを戻り値として返します。


public class StringReturnExample {
    public static void main(String[] args) {
        String message = createGreeting("田中");
        System.out.println(message);
    }

    public static String createGreeting(String name) {
        return "こんにちは、" + name + "さん!";
    }
}

こんにちは、田中さん!

配列を戻り値として返す

メソッドの戻り値に配列を指定すると、複数の値を一度に返すことができます。


public class ArrayReturnExample {
    public static void main(String[] args) {
        int[] numbers = getNumbers();
        for (int num : numbers) {
            System.out.println("取得した値: " + num);
        }
    }

    public static int[] getNumbers() {
        return new int[]{10, 20, 30};
    }
}

取得した値: 10
取得した値: 20
取得した値: 30

このように、配列を戻り値として使うことで、複数のデータを一度に扱うことができます。

7. 複数の値をまとめて返す方法(配列を使う方法)

7. 複数の値をまとめて返す方法(配列を使う方法)
7. 複数の値をまとめて返す方法(配列を使う方法)

メソッドの戻り値は 1 つですが、配列を使うことで複数の値をまとめて返すことができます。

2 つの数の合計と平均を同時に返す

配列を使って、複数の計算結果を 1 つのメソッドで返すことができます。


public class MultiReturnExample {
    public static void main(String[] args) {
        double[] results = calculateSumAndAverage(50, 30);
        System.out.println("合計: " + results[0]);
        System.out.println("平均: " + results[1]);
    }

    public static double[] calculateSumAndAverage(int a, int b) {
        double sum = a + b;
        double average = sum / 2;
        return new double[]{sum, average};
    }
}

合計: 80.0
平均: 40.0

このように、配列を使うことで、1 つのメソッドで複数の値を返すことができます。

8. 戻り値を使う際の注意点(データ型の不一致、戻り値の適切な設計)

8. 戻り値を使う際の注意点(データ型の不一致、戻り値の適切な設計)
8. 戻り値を使う際の注意点(データ型の不一致、戻り値の適切な設計)

戻り値を使う際には、いくつかの注意点があります。特に、データ型の不一致や適切な設計を意識することが重要です。

データ型の不一致に注意

戻り値の型と、変数の型が一致していないとコンパイルエラーになります。


public class TypeMismatchExample {
    public static void main(String[] args) {
        // エラー: getNumber() は int を返すのに double に代入しようとしている
        double value = getNumber();
        System.out.println(value);
    }

    public static int getNumber() {
        return 100;
    }
}

上記のコードは、getNumber() メソッドが int を返しているのに、double 型の変数に代入しようとしているため、コンパイルエラーになります。

適切な戻り値の設計を意識する

メソッドの戻り値を設計するときは、適切な型を選ぶことが重要です。例えば、数値の計算結果を返す場合、整数なら int、小数を含むなら double を選びます。

例: 不適切な戻り値の型

以下の例では、合計値を int で返してしまい、計算結果が正しく取得できません。


public class WrongReturnTypeExample {
    public static void main(String[] args) {
        int avg = getAverage(10, 3);
        System.out.println("平均: " + avg);
    }

    public static int getAverage(int a, int b) {
        return (a + b) / 2; // 小数部分が切り捨てられる
    }
}

平均: 6

この例では、正しく平均を求めるためには double を使うべきです。

適切な戻り値の型を使う

計算結果に小数が含まれる場合は、戻り値の型を double にすることで正確な値を取得できます。


public class CorrectReturnTypeExample {
    public static void main(String[] args) {
        double avg = getAverage(10, 3);
        System.out.println("平均: " + avg);
    }

    public static double getAverage(int a, int b) {
        return (a + b) / 2.0; // 小数を考慮
    }
}

平均: 6.5

このように、戻り値の型を適切に設計することで、プログラムの精度を向上させることができます。

Javaのメソッドの一覧へ
新着記事
IAM Identity Centerの許可セットとポリシーの関係を解説
IAM Identity Centerの許可セットとポリシーの関係を初心者向けにわかりやすく解説!
Java の正規表現で「数字」や「英字」だけをチェックする方法
Javaの正規表現で「数字」や「英字」だけをチェックする方法を初心者向けに完全解説
Java で正規表現を使う方法(Pattern クラスと Matcher クラス)
Javaで正規表現を使う方法を完全解説!PatternクラスとMatcherクラスを初心者向けにやさしく説明
FlutterでQRコードの生成・読み取りをする方法
FlutterでQRコードの生成・読み取りを実装する方法!初心者でもできるQRアプリ開発
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説