首页 > 解决方案 > 将数字插入数组并检查

问题描述

我想在这个数组中插入数字,这样用户就可以选择放多少,直到他想离开。

  1. 第一个问题 - 当用户输入选项 2 退出时,它仍然会在退出之前再次询问该数字,并将其插入到数组中。
  2. 我试图创建一个检查,以便如果用户输入之前已经添加的数字,这是不可能的,但它也不起作用。
numbers = []
option = 1

loop do
  if option == 1
    puts 'To enter a number type 1 - To exit type 2'
    option = gets.chomp.to_i
    
    print 'Type: '
    number_user = gets.chomp.to_i
    if number_user == numbers
      puts 'This number has already been entered!'
    elsif
      numbers << number_user
    end

  elsif option == 2
    puts "Bye!"
    puts "Entered numbers - #{numbers}"
    return
  else
    puts "Invalid option"
    return
  end
end

标签: ruby-on-railsrubylogic

解决方案


用于break跳出循环。并Array#include?测试是否已经输入了数字:

numbers = []

loop do
  option = gets.chomp.to_i
  if option == 1
    puts 'To enter a number type 1 - To exit type 2'
    option = gets.chomp.to_i
    print 'Type: '
    number_user = gets.chomp.to_i
    if number_user == numbers
      puts 'This number has already been entered!'
    elsif
      numbers << number_user
    end
  elsif option == 2
    break
  else
    puts "Invalid option"
  end
end

但是,除非您真的讨厌您的用户或正在构建数字键盘界面,否则您可以通过将输入留空或输入退出字符(“q”或“Q”)来让他们退出,而不必一遍又一遍地输入 1:

numbers = []

loop do
  puts 'Please enter a number (or leave blank to exit):'
  input = gets.chomp
  if ["", "Q"].include?(input.upcase)
    break
  elsif numbers.to_i.include?(input.to_i)
    puts 'This number has already been entered!'
  else
    numbers << input.to_i
  end
end
puts "Bye!"
puts "Entered numbers - #{numbers}"

推荐阅读