ここから本文です

メソッドの戻り値の意味がわかりません。 全くのプログラミング初心者から独学でJ...

nan********さん

2016/3/1605:33:32

メソッドの戻り値の意味がわかりません。
全くのプログラミング初心者から独学でJavaの勉強をしています。

【Java】 メソッドの戻り値について ① | 一番かんたんなJava入門
http://nobuo-create.net/java-beginner-13/

このサイトで、引数に渡された値が3で割り切れるかどうかを判断するメソッドについて解説されていますが、わざわざ戻り値を返す必要性がわかりません。

下記でも出力結果は同じですよね?

public class ReturnTest{
public static void main(String[] args){
isMultipleOf3(23165247);
}
public static void isMultipleOf3(int n){
if(n % 3 == 0){
System.out.println(n + "は3で割り切れます");
}else{
System.out.println(n + "は3で割り切れません");
}
}
}

戻り値を返すことで何か利点があるのでしょうか?

閲覧数:
239
回答数:
10
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

2016/3/1700:15:46

まぁ、たいていの場合、それなりの理由があるわけです。

3で割り切れるかなんて、そもそも、関数にする必要がありません。
mainにかいちゃっても、4行で収まるんなら、それでいいでしょ。

って話です。
私は、最初そんなことを思ってました。(苦笑

それでも、メソッドに分ける理由は、

・本番はメソッドの中身が長くなるので、個別に分ける。
・処理と表示を分けることで、問題の切り離しや修正が楽。
・複数の呼び出しに対応させる。

Booleanのtrue/falseにすれば、その戻り値でif文で処理を分ければいいので。
「3で割り切れます。」と「3で割り切れるぜ!」という2箇所で使いたい時に便利。

また、複雑な処理をさせる時に、メソッド内で完結しやうと、見通しがよくなくなっちゃうんですよ。
処理を表示は分けたほうがいいのは、頭に入れておいたほうがよいですよ。

質問した人からのコメント

2016/3/20 02:30:20

皆さん回答ありがとうございました。
大変参考になりました。

ベストアンサー以外の回答

1〜5件/9件中

並び替え:回答日時の
新しい順
|古い順

cha********さん

2016/3/1700:59:03

戻り値が必要かどうかなんてプログラマがコードの中で判断する事です。

プログラマが戻り値が必要ないと思ったなら必要ないのです。

戻り値が必要かどうかは自分で判断しましょう。

2016/3/1616:17:52

A君はB君に100円渡してジュースを買ってきてと頼んだとしよう。
当然A君はそのジュースを自分で飲むつもりだ。
ところがB君はジュースをA君に渡さず自分で飲んでしまった。
ジュースが空になるという意味ではA君が飲んでもB君が飲んでも同じだ。
しかしジュースを誰が飲むかはとても重要なことだ。

niikoujpさん

2016/3/1616:12:14

この場合はnanasimeijinnさんのおっしゃる通り。



しかし、isMultipleOf3()が複数ある判定処理のうちの一つだった場合はどうでしょうか。
この後に4で割り切れるかどうかを判定する処理を行うなら、
isMultipleOf3()の戻り値次第で、
1)falseの場合:"3で割り切れません"を表示し、処理を中止
2)trueの場合:次の「4で割り切れるかどうかを判定」する為に処理を続行
など、プログラミングを組むことも可能です。

また、プログラミングの複数の箇所でisMultipleOf3()を呼び出したい場合は、どうでしょうか。
どの場合も、同じメッセージを必ず表示するなら、nanasimeijinnさんのおっしゃる通りのやり方が合理的。
それぞれ判定はするけれども、対応する処理が違う場合は、戻り値で判断した方がよい、と思います。

em_********さん

2016/3/1615:54:31

url先のページは解りにくいと感じました。

bas********さん

2016/3/1614:28:09

まあ、ひとつの関数 ( メソッド ) 内で完了する ( ほかのメソッド、特に別のクラスのメソッド では使わない ) 場合は、戻り値使わずにやってもいいですが、
そうじゃないときがほとんど。

たとえば、高校入試とかに出てくるような、

三角比から一辺の長さを求める ( これを m としておく ) -> m を グラフの傾きと見立てて 二次関数 の式に代入し、そのグラフの式を割り出す

みたいな ( もう忘れましたが。 )
ある処理X の結果を元に ある処理Y を行い、その結果を...
みたいにやるやつとか、

ある処理を行ってもらい、その結果がほしいとき。

普通はなんらかの戻り値があることが多いです。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる