如何将变量设置为if条件

时间:2019-04-10 15:45:38

标签: ruby

我有这种情况:

arr1 = [1, 2, 3, 4]

arr1.each do |num|
  if num == arr1.last
    print "#{num}\n"
    exit
  else
    print "#{num} x "
  end
end

并且我必须像打印一个变量一样将其打印出来,也许叫做num_printer,这样如果我写

  puts num_printer

它应该打印出来

  1 x 2 x 3 x 4

但是我不知道该怎么做。 谁能帮我吗?

2 个答案:

答案 0 :(得分:1)

Maxim在答案中指出,有更简单的方法可以实现此目的,但是要回答您的问题,您可以通过初始化一个空的字符串变量,然后在each块中将文本附加到变量中来完成此操作。打印它:

arr1 = [1, 2, 3, 4]
nums_str = ""

arr1.each do |num|
  if num == arr1.last
    nums_str << num.to_s
  else
    nums_str << "#{num} x "
  end
end

puts nums_str
# => 1 x 2 x 3 x 4

请参见https://repl.it/@jrunning/ArcticDeficientArchitecture

答案 1 :(得分:0)

基本上,您想在元素之间插入一些东西(在您的情况下为'x')并输出结果。使用join

puts arr1.join(' x ')