2014-09-11 99 views
1

我如何设置从1到25的范围,然后只打印偶数(提示:记得模)?我用这个作为我的回答:我该如何做这个简单的Ruby循环?

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

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

+0

打印传单N如果n%2 == 0 – 2014-09-11 04:54:00

回答

1

你有一定程度的误解条件

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

感谢stoneboy .....愚蠢的我。 – user3843070 2014-09-11 04:53:32

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

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

有了这么多的答案,我们很高兴指出为什么我们最喜欢这个。对我来说就是使用'even?':) – 2014-09-11 05:35:59

0
puts (1..25).select {|n| n.even?} 
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) }