首页 > 解决方案 > 如何返回包含用户输入的数组数组?

问题描述

下面的代码会将名称分组(例如,第一人进入第一组,第二人进入第二组等)。

我想输入最后一段代码并要求用户输入组号。这应该打印该组中的人,每个人用逗号和空格分隔。组号是“1-indexed”的。这意味着,如果用户输入1,则应该打印第一组,而不是第二组。继续向用户询问(最终)组号,直到用户输入stop

puts "How many groups would you like?"
group_num = gets.chomp.to_i

array = Array.new(group_num) { [] }

puts "Enter one name at a time"
count = 0
 while input_name = gets.chomp
  if input_name == "stop"
    break
  else puts "Give me a name"
   array[count] << input_name
   count += 1
   count = 0 if count == group_num
  end
 end

array.inspect

因此,如果array = [["John", "Steve"], ["Judy", Pete"]]请求的组号为2,则输出应打印:("Judy, Pete"在同一行)。

标签: arraysrubywhile-loop

解决方案


给定数组和想要的索引非常简单

array = [["John", "Steve"], ["Judy", "Pete"]]
puts "tell me which group you want with a number"
number = gets.to_i
if (1..array.length).include?(number)
  puts "people: #{array[number - 1].join(", ")}"
else
  puts "Number element not present"
end

推荐阅读