首页 > 解决方案 > Ruby如何调用函数直到正确的条件?

问题描述

我正在弄清楚 Ruby 返回是如何工作的,所以我遇到了一个问题:我有一个列表和一个函数,它们会在上面推送不同的语句。我需要弄清楚 - 如何在用户输入语句之前调用函数,这不包括在这个列表中?

$my_list = []
def add_element()
  user_input = gets.to_i

  if $my_list.include?(user_input)
    puts 'There is already such number in list, re-enter your number. please.'
    return user_input
  else
    puts "Your number is - #{user_input}"
    $my_list.push(user_input)
  end
end
add_element

问题是它可以查看值是否已经在列表中,但我无法弄清楚如何要求用户再次重新输入它,直到他输入不重复的数字。

标签: ruby

解决方案


为了扩展马克的想法,

$my_list = []
def add_element()
  user_input = gets.to_i
  while my_list.include?(user_input)
    puts 'There is already such number in list, re-enter your number. please.'
    user_input = gets.to_i
  end
  $my_list.push(user_input)
end
add_element

应该做的伎俩


推荐阅读