注意:我是 Ruby 的新手。
问题:如何让 print3 使用 until 循环打印出数组?这可能比我意识到的更简单,但我花了好几个小时试图解决以下问题。我能找到的只是'简单'直到循环示例。
我有一个方法(print3),我特别需要使用直到循环。print3 从 input_students 方法中提取一个数组。两种方法都在下面。
我在 irb 中得到以下信息 - directory.rb:30:in ``print3``: undefined method
[]for nil:NilClass (NoMethodError).
第 30 行是指
puts "#{i+1} #{students[i][:name]} (#{students[i][:cohort]}
cohort)"
我的代码:
def input_students
puts "Please enter the names of the students"
puts "To finish, just hit return twice"
students = []
name = gets.chomp.downcase
while !name.empty? do
students << {name: name, cohort: :november}
puts "Now we have #{students.count} students"
name = gets.chomp.downcase
end
students
end
def print3(students)
i = 0
until i > students.length
puts "#{i+1} #{students[i][:name]} (#{students[i][:cohort]}
cohort)"
i += 1
end
end
感谢您的任何帮助,您可以提供。