ruby-on-rails - 将数字插入数组并检查
问题描述
我想在这个数组中插入数字,这样用户就可以选择放多少,直到他想离开。
- 第一个问题 - 当用户输入选项 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
解决方案
用于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}"
推荐阅读
- qt - 更改 QML 的 RadioButton 中文本的颜色
- javascript - 如何从组件 B 更新组件 A 中的状态?
- .net-core - 将 ASP.NET Core Razor 页面中的默认页面更改为登录页面
- angular - 当我添加 ngAfterViewChecked 时如何修复 prism.js 中的副本
- javascript - 将 javascript 代码插入到 woocommerce 感谢页面的头部标签中
- python-3.x - 无法在 python 中创建绘图表单文件数据
- php - 无法使用按钮提交表单以创建新用户
- c# - 如何修复 log4net 控制台输出配置
- python - 如何在 Python 中从文本文档中取出几行数值数据,对其进行操作并将其写入文本文档中?
- pandas - 如何根据其他数据框更新列的值