我该如何做这个简单的Ruby循环?
问题描述:
我如何设置从1到25的范围,然后只打印偶数(提示:记得模)?我用这个作为我的回答:我该如何做这个简单的Ruby循环?
(1..25).each {|n| print n % 2 == 0}
并得到布尔值打印。我想要得到的数字。我需要在上面的代码中更改什么?
答
你有一定程度的误解条件
(1..25).each {|n| puts n if n % 2 == 0}
+0
感谢stoneboy .....愚蠢的我。 – user3843070 2014-09-11 04:53:32
答
puts (1..25).select {|n| n % 2 == 0}
答
(1..25).each{|n| puts n if n.even?}
或
puts (1..25).select(&:even?)
+1
有了这么多的答案,我们很高兴指出为什么我们最喜欢这个。对我来说就是使用'even?':) – 2014-09-11 05:35:59
答
puts (1..25).select {|n| n.even?}
答
另一种方式:
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) }
打印传单N如果n%2 == 0 – 2014-09-11 04:54:00