是否可以在Ruby中的“N.times {}”括号内放置“if语句”?

时间:2012-02-27 04:39:49

标签: ruby

IN RUBY, 例如,如果你想打印前25个整数,并在输出中的第1个和最后一个整数之间加上“,”(为了清理它一点),你能写下面的代码吗? (我故意不使用while / for循环。)

N = 25

N.times{|i| print("#{i}")
 if i > 0 and i < 25
   print ", "
}

如果已经回复,请将我重定向到旧帖子?谢谢:))

3 个答案:

答案 0 :(得分:1)

是。虽然回答这些问题的最简单方法是在irb中尝试它们。计数逻辑存在一些小问题。

25.times do |i|
  print "#{i}"
  if i >= 0 and i < 24
    print ","
  end
end

答案 1 :(得分:0)

我意识到这只是一个例子,但值得注意的是,你真正想要用的是Array#join

irb(main):001:0> [*0..25].join(", ")
=> "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25"

答案 2 :(得分:0)

Josh Y.的加入示例更好,但是这里的方法简化为一行。

N.times {|i| print"#{i}#{', ' if i>=0 and i<N-1}"}
相关问题