我该如何做这个简单的Ruby循环?

时间:2014-09-11 04:50:00

标签: ruby loops

如何制作1到25之间的范围,然后只输出偶数(提示:记住模数)?我用这个作为答案:

(1..25).each {|n| print n % 2 == 0}

并打印出布尔值。我希望得到这些数字。我需要在上面的代码中更改什么?

5 个答案:

答案 0 :(得分:6)

(1..25).each{|n| puts n if n.even?}

puts (1..25).select(&:even?)

答案 1 :(得分:1)

你有点误解了这个条件

(1..25).each {|n| puts n if n % 2 == 0}

答案 2 :(得分:1)

puts (1..25).select {|n| n % 2 == 0}

答案 3 :(得分:0)

puts (1..25).select {|n| n.even?}

答案 4 :(得分:0)

另一种方式:

def print_even(r)
  puts ((r.first.even? ? r.first : r.first+1)..r.last).step(2) { |i| puts i }
end

print_even((1..25))
  #=> 2
  #=> 4
  #=> 6
  ...
  #=> 24
print_even((2..26))
  #=> 2
  #=> 4
  #=> 6
  ...
  #=> 26

......和另一个:

even = true
(1..25).each { |i| puts i if (even = !even) }