質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

2回答

789閲覧

Rubyのメソッド自作計算について

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2021/06/18 08:55

引数に指定したコードをすべて足し上げるプログラムを作りたいのですが、これだけのコードでは、プログラムが実行されません。
何が、足りないか教えてください。

Ruby

1def sum_all(*numbers) 2 sum = 0 3 numbers.each do |number| 4 sum += number 5 end 6 sum 7end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

実際に呼び出してみました。

Ruby

1def sum_all(*numbers) 2 sum = 0 3 numbers.each do |number| 4 sum += number 5 end 6 sum 7end 8puts sum_all(10,20,30) 9

結果:
60

当たり前の話ですが
puts sum_all(10,20,30)
の行を
sum_all(10,20,30)
にした場合は、画面になにも表示されませんので、呼び出したのか呼び出していないのかが
判定できません。

投稿2021/06/18 09:50

tatsu99

総合スコア5447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/18 10:01

puts ではなくて、p で呼びだしたのですが、この場合は大丈夫ですか?
tatsu99

2021/06/18 10:15

大丈夫です。
guest

0

基本的に、メソッドは呼ばないと実行されません。

投稿2021/06/18 09:00

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/18 09:29

呼び出しても、このコードでは実行されませんでした。
maisumakun

2021/06/18 09:39

では、呼んだコードの方も書いてください。
退会済みユーザー

退会済みユーザー

2021/06/18 09:48

p sum_all([*1..10]) 呼び出す引数になんていれていいかよくわからなかったんですけど、呼び出しのほうが間違ってますか?
maisumakun

2021/06/18 09:51

> 呼び出しのほうが間違ってますか? はい、配列1個の引数では、このメソッドは正常に動作しません。 (エラーが出ているのでしたら、具体的な内容を書いてください。そうでないと、「メソッドを呼んで計算はしたけど何も表示せずに終了している」ような可能性も考慮する必要が出てきてしまいます)
退会済みユーザー

退会済みユーザー

2021/06/18 09:59

分かりました。まだ慣れておらず、わかりにくい質問ですみません エラー文は、syntax error unexpected ' , ' , expecting ' [ 'と表示されました。
maisumakun

2021/06/18 10:01

今まで書かれたコードでそのエラーが出るはずはありません(提示のコードにコンマが1文字も使われていません)。 実際に実行したコードを、一字一句間違いなくコピペしていただけないでしょうか?
退会済みユーザー

退会済みユーザー

2021/06/18 10:38

def sum_all(*numbers) sum = 0 numbers.each do |number| sum += number end sum end p sum_all([*1,,10]) コードはこれです。
maisumakun

2021/06/18 10:40

えっと、sum_allに渡したい引数は何なのですか?
退会済みユーザー

退会済みユーザー

2021/06/18 10:47

sum_all([*1..10])です。 引数が間違っているのかもしれないです。。。
maisumakun

2021/06/18 11:08 編集

その引数だと、「1から10まで入った配列1つ」を渡すという意味になりますが、すでに上でコメントしたようにその形ではこのメソッドは動きません。 何を渡したいのか、日本語で表現できますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問