Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Javaプログラマーが必ず理解しておかないといけない頻出機能の1つに「return文」が挙げられます。

本記事では、Java開発初心者の方向けに「return文」の使い方をサンプルコードを掲載しながらご紹介していきます。

return文とは


return文は、「処理を中断して呼び出し元に返す」処理と「値を返す」処理を実施するJavaの命令文です。

処理を中断して呼び出し元に返す

return;

値を返す

return 返却値;

処理を中断して呼び出し元に返す

処理を中断して呼び出し元の返す記述法です。

クラス {
  mainメソッド {
    Aメソッド呼び出し
  }

  void Aメソッド {
    処理1
    if (条件式) {
      処理2
    } else {
      return;
    }
    処理3
  }
}

「A」メソッドを呼び出し処理1の実行後、条件式が「true」の場合、処理2を実行した後、処理3が実行され「main」メソッドに戻ります。

一方で処理1の実行後、条件式が「false」の場合、処理2が実行されないのはもちろん、処理3も実行されず「main」メソッドに戻ります。

return文が実行された時点で呼び出し元である「main」メソッドに戻ることになるからです。
Javaの高単価フリーランス案件はこちら

値を返す

return文のもう1つの使い方として「値を返す」機能がありますが、厳密に言うと「処理を中断した上で値を返す」となります。

クラス {
  mainメソッド {
    変数 = Aメソッド呼び出し
   System.out.println(変数);
  }

  戻り値の型 Aメソッド {
    処理1
    if (条件式) {
      処理2
    } else {
      return "処理が中断されました。";
    }
    処理3
    return "Aメソッドの処理は全て実行済みです。";
  }
}

このような記述をした場合、「A」メソッドの条件式が「true」の場合には処理1,2,3が全て実行された上で「main」メソッドの処理に戻り「Aメソッドの処理は全て実行済みです。」と出力されます。

一方で条件式が「false」の場合、処理1のみ実行された上で「main」メソッドの処理に戻り「処理が中断されました。」と出力されます。

気づかれた方もいらっしゃるかも知れませんが、値を返却する場合メソッド名の前に返却値の型を指定する必要があります。

return文を使用した各種Javaサンプル


では実際にreturn文を使用いた様々なJavaのサンプルコードを確認してみましょう。

voidメソッドで処理を中断する

import java.util.*;

public class Main {

	public static void main(String[] args) {
		execute(true);
		execute(false);
	}

	private static void execute(Boolean sample) {

		if(sample) {
			System.out.println("条件式がtrueの場合の処理です。");
		} else {
			System.out.println("条件式がfalseの場合の処理です。");
			return;
		}
		System.out.println("処理が中断されなければ共通で出力される処理です。");

	}

}

実行結果

条件式がtrueの場合の処理です。
処理が中断されなければ共通で出力される処理です。
条件式がfalseの場合の処理です。

条件式がfalseの場合、処理が中断されていることをご確認頂けます。

クラスを指定して値を返却する

import java.util.*;

public class Main {

	public static void main(String[] args) {
		String str1 = execute(true);
		System.out.println(str1);
		String str2 = execute(false);
		System.out.println(str2);
	}

	private static String execute(Boolean sample) {

		if(sample) {
			return "条件式がtrueの場合の処理です。";
		} else {
			return "条件式がfalseの場合の処理です。";
		}
		// System.out.println("処理が中断されなければ共通で出力される処理です。");
        // この処理には到達出来ない。
	}

}

実行結果

条件式がtrueの場合の処理です。
条件式がfalseの場合の処理です。

処理を中断する際に使用した「void」メソッドのサンプルを、値を返却する用に変更してみました。

このように記述するとif文のどちら側の処理が実施された場合でも、return文が呼び出されているため、メソッドの最後に記述された共通の出力処理が実施されません。
Javaの高単価フリーランス案件はこちら

複数項目の返却には配列やリストなどを利用

ではどのように複数の値を返却するのかというと、配列やリストに格納することで複数の値をオブジェクトに設定して返却することが可能となります。

import java.util.*;

public class Main {

	public static void main(String[] args) {
		ArrayList<String> strList1 = execute(true);
		for (String str: strList1) {
		  	System.out.println(str);  
		}

		ArrayList<String> strList2 = execute(false);
		for (String str: strList2) {
		  	System.out.println(str);  
		}
	}

	private static ArrayList execute(Boolean sample) {
	    ArrayList<String> strArray = new ArrayList<>();

		if(sample) {
			strArray.add("条件式がtrueの場合の処理です。");
		} else {
			strArray.add("条件式がfalseの場合の処理です。");
			return strArray;
		}
		strArray.add("処理が中断されなければ共通で出力される処理です。");
		return strArray;
        
	}

}

実行結果

条件式がtrueの場合の処理です。
処理が中断されなければ共通で出力される処理です。
条件式がfalseの場合の処理です。

returnとexitの違いに注意


returnと同じく処理を中断させる方法として「exit」メソッドが挙げられます。

ただし、「exit」メソッドでは、呼び出した時点でプログラム自体を終了する特徴があります。

exitメソッドのサンプル

voidで処理を中断するサンプルを「exit」に書き換えて実行順を変更してみます。

import java.util.*;

public class Main {

	public static void main(String[] args) {
		execute(false);
		execute(true);
	}

	private static void execute(Boolean sample) {

		if(sample) {
			System.out.println("条件式がtrueの場合の処理です。");
		} else {
			System.out.println("条件式がfalseの場合の処理です。");
			System.exit(0); // 引数の0は正常終了で利用される
		}
		System.out.println("処理が中断されなければ共通で出力される処理です。");

	}

}

実行結果

条件式がfalseの場合の処理です。

まず「excute(false)」が実行され、else側の処理が呼び出されることで、コンソール出力が実行された後プログラムを終了しています。

2番目に実行される予定だった「execute(true)」の処理が実施されないため、サンプルのような出力結果となります。

さいごに: Javaプログラム開発ではreturn文は頻出処理の1つ


本記事では、Javaプログラムでのreturn文の使い方についてご紹介してきました。

条件によって処理を中断させたり、値を返却するような処理は様々な場面で必要となります。

Javaプログラム開発では必須処理の1つと言えますので、実際に利用してみながら理解を深めていきましょう。

Javaのフリーランス案件を覗いてみよう

Javaのフリーランス案件は豊富にあり、条件も高いものが多いです。Javaの実務経験が2年以上あればフリーランスになるのも可能です。経験が5年程あれば月単価70万円以上も可能です。Java案件のトレンドが気になる方は、Java案件の単価相場や募集トレンド
をご覧ください。

当メディアを運営するポテパンでJavaフリーランス案件のご紹介もやっておりますので、最新Java案件一覧も是非ご覧ください。

もし、RubyなどのWebエンジニアへの転職を考えている方は、転職に強いポテパンキャンプをご利用くださいませ。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。