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

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

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

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

Q&A

1回答

1183閲覧

rubyの質問です

renre1221

総合スコア11

Ruby

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

0グッド

0クリップ

投稿2015/08/15 12:46

a=Array.new(100){|i|i+1}
sum=0
a.each {|i|
sum+=i
}
print sum
1~100までを足すコードを書きたいのですが、a=Array.new(100){|i|i+1}
からeachメソッドを使って合計を出す事はできますか?
確認ですが、{|i|}のiは||に入った瞬間に変数宣言されているのですか?
この変数は{}の中でしか機能しないローカル変数という事ですよね?
詳しい方、このコードの間違いを指摘してください。よろしくお願いします。

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

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

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

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

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

guest

回答1

0

次のコードは理解できますか?

ruby

1a = Array.new(100){|index| index + 1} 2sum = 0 3a.each {|i| 4 sum += i 5} 6puts sum 7puts a.inject(:+) 8 9a = (1..100) 10sum = 0 11a.each {|i| 12 sum += i 13} 14puts sum 15puts a.inject(:+)

実行結果

$ ruby a.rb 5050 5050 5050 5050

配列の要素の和を得るには、 inject というメソッドを使っても可能です。
(inject については、 ruby の API リファレンスを読んでみてください)

each や inject は (1..100) といった配列以外のものでも使えます。

投稿2015/08/15 14:09

katoy

総合スコア22324

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

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

renre1221

2015/08/15 15:16

回答者さんのコードの意味は理解できます。a=Array.new(100){|i|i+1} 同じ名前の変数はrubyでは使えないという事ですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問