ruby方法循环无循环

时间:2016-09-13 15:20:46

标签: ruby methods

嗨我遇到了一个我写过的方法的问题。当方法执行完毕后,即使没有循环,它也会再次运行前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 

任何帮助都将不胜感激。

0 个答案:

没有答案