icon
icon

Javaのreturn文で複数の値を得る方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaのreturn文で複数の値を得る方法について解説しています。ここではクラス型を利用し2つの値を取得する方法について例を使って説明します。サンプルコードで処理の流れを確認しましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Javaのreturn文で複数の値を得る方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

return文で複数の値を得る方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

複数の値を得る方法とは?

通常、return文を使用した戻り値は、下記サンプルコードにあるcircleAreaのように1つの戻り値しか返せません。

public class Main {
	public static void main(String[] args) {
		double circleArea = area(5);
		System.out.println("円の面積は" + circleArea + "です。");
	}
	private static double area(int num1) {
		double circleArea = num1 * num1 * 3.14;
		return circleArea;
	}
}

実行結果

円の面積は78.5です。

複数の値をreturn文で戻したい場合は、1つの配列変数かクラス型変数に値をまとめて返す必要があります。

【複数の戻り値が同じデータ型の場合】
1.配列変数を利用して値を戻す
配列変数の中には、データ型が同等の複数の値を代入できます。

【複数の戻り値が異なるデータ型の場合】
1.Objact型の配列を利用して値を戻す
クラス型(参照型)であればObject型配列変数の中に複数のクラス型を代入できます。

2.クラス型を利用して値を戻す
オブジェクトの返却後、そのオブジェクトのフィールドを呼び出すことで値を取り出せます。

 

1つのクラスにして返してみる

今回はクラス型を利用して値を戻す方法で考えてみます。

複数の値を返すには、複数の変数(フィールド)を持った1つのクラスを作成します。

変数circle(円周)も変数circleArea(円の面積)も返したいときには、下記サンプルのようにcircleとcircleAreaを持つ1つのクラスにすれば返すことができます。

public class Circle {
    double circle;			// 円周
    double circleArea;	// 円の面積
}

 

[PR] Javaプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

public class Circle {
    double circle;			// 円周
    double circleArea;	// 円の面積
}
public class Sub {
    public Circle calcCircle(int r) {
        Circle cir = new Circle();
        cir.circle = 2 * r * 3.14;
        cir.circleArea = r * r * 3.14;
        return cir;
    }
}
public class Main {
    public static void main(String[] args) {
        Sub sub = new Sub();
        Circle cir = sub.calcCircle(5);

        System.out.println(cir.circle);
        System.out.println(cir.circleArea);
    }
}

実行結果

31.400000000000002
78.5

今回はCircleクラスが複数の値を戻すクラスとしています。

SubクラスのcalcCircle()メソッドで円周(circle)と円の面積(circleArea)を計算し、計算結果をCircleクラスのフィードに設定しています。calcCircle()メソッドからの戻り値は2つの値が設定されたCircleオブジェクトになります。

main()メソッドでは、戻り値として受け取ったCircleオブジェクトからそれぞれのフィールドの値を取り出すことで、複数の値を取得できています。

 

監修してくれたメンター

松井紀明

メーカー系で17年エンジニアとして勤務後、現在はフリーのエンジニアとしてリモートワークで働いています。
Java、Perl、COBOL、最近ではRuby、PHP等、様々な言語での開発を経験しています。TechAcademyではJavaコースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。

 

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する