2

次の for ループを ruby​​sh で表現するにはどうすればよいですか?

for (r = 1; r < R; r++) {
    for (i = 0; i < 4; i++) {
            #do something
            }
}

上記のコードを洗練された Ruby 構文で表現したいと思います。前もって感謝します。

4

5 に答える 5

4
1.upto(R-1) { |r|
   4.times {|i| 
      # Do something
   }
}

ルビーフィドル

これはとメソッドを使用していIntegerます。uptotimes

于 2012-07-18T06:08:12.070 に答える
1

デフォルトでは、Ruby でそれを書く方法は次のとおりです。

for r in 1..(R-1) do
  for i in 0..3 do
    # Do something
  end
end

しかし、さらに良い方法は、@PedroNascimento が彼の回答で指摘した範囲機能を利用することです。最後の項目を範囲外にするために、2 つではなく 3 つのドットを使用します。

for r in 1...R do
  for i in 0...4 do
    # Do something
  end
end

これは見やすく、コードの意味をより明確に表現しています。

于 2012-07-18T06:10:31.377 に答える
0
    for r in 1..R-1
       for i on 0..3
          do something
       end
    end

ここでは、Ruby の構文に関するその他のヘルプを見つけることができます。

于 2012-07-18T06:05:22.783 に答える
0

Rangeを使用したちょうど別の答え。

r = 5 #
(1..r-1).each do|i|
  (1..3).each do |j|
       puts "i => #{i} , j => #{j}"
   end
end

@Pedro Nascimento の回答に触発されたこのバージョン。

r = 5 #
(1...r).each do|i|
  (1...3).each do |j|
       puts "i => #{i} , j => #{j}"
   end
end
于 2012-07-18T06:21:10.503 に答える