仅包含偶数的循环

时间:2018-12-05 21:41:24

标签: ruby loops

我正在执行的任务是以给定的格式生成一系列伪造的电子邮件地址。

我设法编写了一个适用于它的代码。这是我的代码:

emails = []
(1..50).each do |i|
  puts "jean.dupont.%02d@email.fr" %[i]
  emails.push(i)
end

这将生成如下电子邮件:

jean.dupont.01@email.fr
jean.dupont.02@email.fr
jean.dupont.03@email.fr
...
jean.dupont.50@email.fr

我正在做另一件事来生成相同的东西,但只包含偶数。

如何在已有的代码中添加简单的代码,使其仅给出偶数?

3 个答案:

答案 0 :(得分:5)

如果您可以更改范围,那么step将成为您的朋友:

emails = []
(2..50).step(2) do |i|
  puts "jean.dupont.%02d@email.fr" %[i]
  emails.push(i)
end

答案 1 :(得分:2)

旧学校方式(对学生有启发性):

emails = []
(1..50).each do |i|
  if i % 2 == 0
    puts "jean.dupont.%02d@email.fr" %[i]
    emails.push(i)
  end
end

答案 2 :(得分:1)

通过使用.select方法,将(1..50).each更改为(1..50).select(&:even?).each,可以将范围过滤为仅偶数。

如果您可以更改范围,那么jerhinesmith的答案也很好。