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

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

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

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

Q&A

解決済

3回答

369閲覧

Ruby 可読性のいいループ処理を書きたい。

milk

総合スコア17

Ruby

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

0グッド

0クリップ

投稿2014/08/28 09:17

CやJavaやその他言語には、for,whileなどのメジャーなループ処理を行うものが用意されていますが、
Rubyでfor,whileはもちろんそれ以外で、eachやupto以外で、
可読性のいいループ処理を書きたいのですが、何かありますでしょうか?

どなたか知っている方いましたら、教えてください。宜しくお願いします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

繰り返しについてでしたら、マニュアルの module Enumerable の頁を流し読みでもいいので通読するのをお勧めします。

forwhile そして each だけで実装しようとすると、面倒臭かったり、そもそもどうやって実装すればいいのか分からない、といった場合でもEnumerableモジュールのメソッドにちょっとしたブロックを渡したら簡単に解決出来るというケースが多々有ります。本当に多々あります。

ただ、each以外のEnumerableモジュールのメソッドでは副作用をメインにした処理をやらないのが吉です。逆に言えば、副作用をメインにした処理だけeachに任せとけば大体OKです。

投稿2014/08/30 01:25

mugyu

総合スコア34

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

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

milk

2014/09/01 02:46

とても参考になりました!分かりやすい回答ありがとうございました!
guest

0

RuyLife 繰り返し
で、次のものが列挙されています。

while文
until文
for文
範囲オブジェクト
eachメソッド
timesメソッド、uptoメソッド、downtoメソッド
stepメソッド
loopメソッド
break
next
redo
式修飾子(while修飾子、unitl修飾子)

状況に会わせて、使い分けると良いと思います。

投稿2014/08/29 12:35

katoy

総合スコア22324

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

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

0

結構絞られてしまいましたが、他だと、
timesメソッドを使うと、簡潔に記述できますよ。

例えば、0〜5まで順に出力させたい場合、timesメソッドを使うと以下のように書けます。

lang

16.times do |i| 2p i 3end

投稿2014/08/29 02:30

oimo

総合スコア251

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問