
No.2ベストアンサー
- 回答日時:
要するに質問者さんは
いちいちreturnで返さずに
そのままそこで表示しちゃえばいいのにって言いたいんですよね?
これに関しては
例に出しているような
それで完結するシステムなのであればいいのですが
そうじゃない場合が殆どです
質問者さんが挙げた例だと確かに恩恵が分かりにくいですが
returnというのは処理の終わりを表しているものと考えて
明示的にここで終わってますよと示すためにも必要なものだと
ふんわりと認識していればいいと思います
勉強を進めていくなかで、returnの必要性などもわかってくると思いますよ

No.3
- 回答日時:
そもそも、def percentage(a, b)に何の機能を求めるかということです。
あなたが、求めるものが、「a/bのパーセンテージを画面に表示する。」ということなら、
あなたの仰る通りputsを使えば良いことになります。
しかながら、def percentage(a, b)に求めている機能はそれではないのです。
求めている機能は、「a/bのパーセンテージを返す」ことなのです。
これは、sin(x)が、xの正弦をとった結果を返すことが、sin(x )の機能であること同じことです。
xの正弦をとった結果を画面に表示することが機能ではありません。それと同じことです。
a/bのパーセンテージを画面に表示したいのなら、
def percentage(a, b)の結果を呼び出し側でputsすれば良いのです。
従って、def percentage(a, b)では、putsをしてはいけないのです。
だから return 0 で0を返して終了しているのです。
そして、def percentage(a,b) が返す値は、return を使用しない場合は、最後に評価された値(a * 100 / b)
となります。
一般的に言って、もし、six(x)を呼び出したら、勝手にその結果が画面に出力されたら呼び出し側は困りますよね。
その為、何かを計算した結果がほしい場合、そのようなメソッドは計算した結果を画面に表示することはせず、
それの呼び出し側で画面に出力します。
もちろん、画面に出力すること自体が目的なら、それは、そのメソッド内で思う存分画面に出力すれば良い訳ですが。
返信頂き有難うございます。
今している学習サイトで、定義部分でreturnがない状態で進んでいて、途中から、全く同じ内容に見える定義部分で急にreturnが出てきたイメージがあり、すっかり誤解していました。 (個々の例については、 returnの有無の違い等は難しいですが----)
説明頂き有難うございました。
No.1
- 回答日時:
意味...意味かぁ
0と表示して終わりというプログラムでしたら
putsを使って0でもいいでしょう
returnというのはその名の通り戻り値
メソッドの実行結果を返すものだと思ってください
例えば計算結果だったりを返すものです
0が返ってきたらエラー文を表示するといった処理を
メソッド呼出元で行ったりするので0を返したりします
意味を聞かれると難しいですが
返り値を元に処理を分けたりする場合にはreturnが必要になってきます
返信頂き有難うございます。
説明頂くとなんとなくわかるような気もするのですが、個々の例で見ると、なぜ「if --- / puts -----/ else/ puts ------/ end」ではなく、「return」なのかわかりません---。以下もその一例です。
商品の合計額が1万円より少ない場合、300円の送料がかかる場合
def total_cost(price)
if price >= 10000
return price
end
return price + 300
end
#商品の合計金額 7000円の場合
puts "お支払い金額は、送料込みで#{total_cost(7000)}円です"
#商品の合計金額 16000円の場合
puts "お支払い金額は、送料込みで#{total_cost(16000)}円です"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1、Rstudioで回帰直線を求める...
-
rubyでじゃんけんのプログラム...
-
あせんうぶり言語
-
pythonのerrorコード
-
三項でたとえば交換って
-
なんで if __name__ == "__main__"
-
パイソンのクラスについて
-
プロセシングの質問です。
-
IDLE.Shell 3.10.0
-
最近RUBYの環境構築をしようと...
-
CSSのhtmlへの紐付けについ...
-
プログラミングについてです。...
-
パイソンのクラスについて
-
Gitのクローンについて
-
パイソンプログラム
-
このコードをどう修正した良い...
-
プログラミング
-
Beautiful Soupのインストール...
-
resuests モジュール
-
プログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
RubyのProcについて
-
【BrowseForFolderでデスクトッ...
-
Rails コンボボックスの値の保...
-
get() と find() の違いについて
-
エクセルVBA オートフィルタで...
-
教えてください。vb5.0
-
VBAで型が一致しないエラー(バ...
-
「arg」は何の略?
-
エラー「メソッドまたはデータ...
-
メソッド定義の構文のdefって
-
実行時エラー450:引数の数が一...
-
Csvファイルの最終行を取得する...
-
class roomとclassroom どちら...
-
関数の引数に複数のユーザ定義...
-
変数の隠蔽とは?
-
Ruby Selenium 要素の待機
-
HSTLやSSTL等のI/Oピン
-
What class are you in? には何...
-
10円未満を切り捨てる方法は?
-
プログラミング言語 R
おすすめ情報