2011-12-29 4 views
4

はどのように私はのようなものを使ってRubyで "こんにちは" の繰り返しのすべてのn番目を印刷し、すべてのn番目の反復:ルビー -

50.times do 
    # every nth say hello 
end 
+4

'%'演算子を使用しますか? –

+0

@DaveNewtonはそれが使用されている例を見せてくれますか? –

+0

@Zenph '%'演算子が使用中であることを示す回答を追加しました。 –

答えて

10

私は考えていませんその場合はtimesが有効です。

50.times do |i| 
    # print hello if number of iteration is multiple of five 
    puts 'Hello' if (i + 1) % 5 == 0 
    # do other stuff 
end 

記数:それはあまりにもブロックへInteger#times利回り反復数があることが判明した(d11wtqのおかげで)

を更新しました

(1..50).each do |i| 
    # print hello if number of iteration is multiple of five 
    puts 'Hello' if i % 5 == 0 
    # do other stuff 
end 

:しかし、あなたは以上の代わりに範囲を反復処理することができますゼロベースなので、反復番号に1を加えます(代わりにi % 5 == 4を使用できますが、それはあまり明白ではありません)。

+2

'times'は反復インデックスもブロックに返します。 – d11wtq

+0

ああ、私はあなたに感謝@ d11wtq、あなたは私の目を開いた。何らかの理由で、私はいつもそれはしませんし、範囲の繰り返しを使用しています。 –

+0

私はよくその仮定をしている人々を見ています:) – d11wtq

9
(0..10).step(2) do |it| 
    puts it 
end 

出力:

0 
2 
4 
6 
8 
10 
+0

それは他の繰り返しをスキップしませんか?私は繰り返しをスキップせずにこれをやろうとしており、n回目の反復で余分なアクションを実行するだけです。答えをありがとう。 –

+0

他の繰り返しをスキップします。この発言を含めるために質問を更新してください。 – Yossi

+1

@ Yossi私は50倍の部分を50回繰り返すという質問に含めると、n回ごとに印刷すると思います。 –