【Java入門】return文でメソッドの戻り値を使う(複数の戻り値も解説)

こんにちは!フリーライターの中井です。

Javaにはメソッドの値を返す戻り値を使うためのreturn文があります。この記事では、

  • メソッドの戻り値とは
  • return文とは
  • return文で戻り値を返す方法

という基本的な内容から、複数の戻り値を返す方法などの応用的な使い方に関しても解説していきます。今回はメソッドの戻り値を使うreturn文について、わかりやすく解説します!

メソッドの戻り値とは

メソッドの戻り値とは、メソッドの呼び出し元に返す値のことをいいます。メソッドの戻り値がない場合は、次のようにメソッドの中ですべての処理を行うプログラムになります。

サンプルプログラム:

実行結果:

return文とは

return文は、そこで処理を終了し、呼び出し元に処理を戻します。通常、メソッドは最後まで処理を行うと呼び出し元に処理が戻るため、条件によって途中で処理を中断する場合などに使われます。次のサンプルプログラムを見てください。

サンプルプログラム:

実行結果:

上記のプログラムでは、numメソッドの引数num1が0の場合に、return文が実行されます。return文が実行された後は、それ以降の処理が行われていないことがわかります。

return文で戻り値を返す方法

return文を使って、呼び出し元に戻り値を返すことができます。戻り値を返すメソッドは次のように記述します。

書き方:

呼び出し元は次のように戻り値を使用することができます。

書き方:

この呼び出し元のメソッドのように戻り値を返さない場合には、戻り値の型にvoidを指定します。voidは戻り値を返さないことを意味し、そのメソッド内ではreturn文を使う必要がありません。

基本的な使い方

最初に紹介したプログラムを、戻り値のあるメソッドに書き換えていきましょう。

サンプルプログラム:

実行結果:

上記のaddメソッドは、引数を足し算し、その答えをreturn文を使って返します。mainメソッドでは、その戻り値を変数addNumに代入しています。これにより、mainメソッドで足し算の結果を表示することができています。

return文で条件によって処理を終了させる方法

条件によって異なる戻り値を返し、処理を終了させることもできます。次のサンプルプログラムを見てください。

サンプルプログラム:

実行結果:

上記のdivide5メソッドは、引数が5で割り切れた場合に「return true;」で戻り値としてtrueを返し、処理を終了します。その後の「return false;」は実行されません。

nullをreturn文で返す方法

戻り値として、何も値が入っていないことを表すnullを返すこともできます。

サンプルプログラム:

実行結果:

上記のgetFirstStringメソッドは、引数として受け取ったString配列arraysの最初の要素を返すメソッドです。arraysがnull、または長さが0の場合に「return null;」でnullを返します。

getFirstStringメソッドは、メソッドの定義でString型の戻り値を返す宣言をしているので、返す値がない場合も「return;」で処理を終了することはできません。

複数の戻り値を返す方法

returnは非常に便利ですが、1つの戻り値しか返せないのが難点です。もし複数の値を返したいときにはどうすればよいのでしょうか?

複数の値を返すには、複数の変数を持った1つのクラスにして返す方法が考えられます。変数num1も変数num2も返したいときには、num1とnum2を持つ1つのクラスにすれば返すことができます。次のサンプルプログラムを見ていきましょう。

サンプルプログラム:

実行結果:

上記のプログラムでは、calcMethodで足し算と掛け算を行い、2つの計算結果を1つのクラスにまとめて、mainメソッドに返し出力しています。このように、複数の変数を1つのクラスにまとめてreturnすることで、複数の戻り値を返す事ができます。

exitメソッドとの違い

ここでは、exitメソッドとreturn文の違いを解説します。メソッドの処理を終了させるにはreturn文を使いますが、プログラムの全体を終了させるにはexitメソッドを使います。return文で処理を終了させる場合には、finallyブロック内の処理が実行されます。

exitメソッドでプログラムを終了させる場合には、finallyブロック内の処理は実行されません。次のプログラムで確認してみましょう。

実行結果:

このプログラムの実行結果から、return文ではfinallyブロック内の処理が実行されることが確認できました。exitメソッドの使い方はこちらの記事で詳しく解説しているので、ぜひ確認してください。

【Java入門】exitでプログラムを終了させる(returnとの違いも解説)
更新日 : 2018年5月10日

メソッドの使い方総まとめ

この記事では紹介しきれなかったメソッドのいろいろな使い方を次の記事にまとめているので、ぜひ参考にしてください!

まとめ

この記事ではメソッドの戻り値を使うreturn文について解説しました。戻り値を使うとメソッドの処理の結果を呼び出し元で利用できます。return文は1つの値しか返せませんが、1つのクラスに複数の値をまとめることで複数の値を返すことができます。

もし、メソッドの戻り値について忘れてしまったらこの記事を確認してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

中井

中井

フリーライター。
主に美容系、ライフスタイル系含めこれまでに500本以上執筆。
趣味はオンラインゲームにフリーソフトの情報収集。

プログラミンとの出会い
-----------------------------------------------------------------------------------------
PCとプログラミングは大学からです。
それまでは、PCは触ると壊れると思い込んでました。

大学の授業で面白そうな理由でJavaを専攻。
全然授業についていけず、後ろの席の子に課題をやってもらってました。

そんなプログラミング音痴な状態で社会人を迎え、先輩からVBAがオススメと言われVBAを職場の人から教えてもらい習得。
その後、自分の業務に携わるものおは全てVBAを組みました。

会社を退職後、再度Javaを勉強する機会に恵まれ、大学でわからなかったことが一気に理解できるように。
念願のAndroidアプリでTwitterのクライアントアプリを作れるまでになりました。
以後、文章の修行の傍らJavaの最新情報を追う日々が続いています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説