
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- その他(プログラミング・Web制作) 【Python初学者】以下コードについて教えていただきたいです 4 2023/04/19 13:01
- C言語・C++・C# C言語 leetcode21 Merge Two Sorted Lists 2 2022/04/24 19:35
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(再質問)エクセルのマクロボ...
-
パソコンのスクリーンセーバー...
-
ruby 配列
-
Ruby require ライブラリー
-
ruby OpenURI::Meta
-
ルビー言語 ライブラリー 追記
-
ruby ensure句
-
ルビー言語 ライブラリー(再々...
-
実行時エラー450:引数の数が一...
-
ruby loopメソッド 変数(再喝)
-
教えてください
-
文字コードのエラー
-
ruby while式
-
ruby loopメソッド 変数
-
ruby raise句
-
ruby begin句
-
pandasでsqlite3にテーブル作成...
-
100万件越えCSVから条件を満た...
-
プログラミング
-
7セグメント LED ディスプレイ ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【BrowseForFolderでデスクトッ...
-
Rubyにインクリメンタル演算子...
-
ruby 毎回同じ様なreplace文を...
-
ブロック1 Ruby認定試験対策問題
-
メソッド定義の構文のdefって
-
「arg」は何の略?
-
教えてください。vb5.0
-
get() と find() の違いについて
-
エクセルVBA オートフィルタで...
-
クラス名やモジュール名の競合...
-
実行時エラー450:引数の数が一...
-
エラー「メソッドまたはデータ...
-
テンプレートの特殊化でコンパ...
-
class roomとclassroom どちら...
-
正規表現で両端に文字列を置換
-
Rails コンボボックスの値の保...
-
HSTLやSSTL等のI/Oピン
-
Csvファイルの最終行を取得する...
-
関数の引数に複数のユーザ定義...
-
VBAで型が一致しないエラー(バ...
おすすめ情報