【发布时间】:2019-09-26 05:21:53
【问题描述】:
下面的代码会将姓名分组(例如,第一个人进入第一组,第二个人进入第二组等)。
我想输入最后一段代码并要求用户输入组号。这应该打印该组中的人,每个人用逗号和空格分隔。组号是“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"(在同一行)。
【问题讨论】:
-
每个组是否总是只包含 2 个名称?
-
不,可以有用户指定的任意数量的组和名称。最后一段代码只需要请求用户希望看到的组号。其他一切都已经在原始代码中实现了。
-
那么你怎么知道一个组什么时候输入完名字?
-
我现在有了解决方案,但感谢您的关注。
-
无论如何请看我的回答,它可能会有所帮助。在将第一个答案标记为“已接受”之前,在 Stackoverflow 上留出时间等待其他可能的答案也是一个好主意,因为有很多方法可以解决相同的问题。
标签: arrays ruby while-loop