嗨我遇到了一个我写过的方法的问题。当方法执行完毕后,即使没有循环,它也会再次运行前2行。谁能告诉我为什么?
这是代码
def print(students)
if sort_by?("letter") then students = letter_sort(students) end
if sort_by?("cohort") then students = cohort_sort(students) end
print_header
i = 0
until i = students.length do
student_name = get_student_name(students[i][:name])
puts "#{i+1}. #{student_name} (#{students[i][:cohort]} cohort)"
i = i + 1
end
end
顶部的两个if语句是正在执行的语句。这是sort_by?方法I也写了。
def sort_by?(string)
puts "would you like to sort by #{string}?"
puts "Enter y/n:"
input = gets.chomp.downcase
while input != "n" or input != "y"
if input == "n"
return false
elsif input == "y"
return true
end
end
end
任何帮助都将不胜感激。