我正在尝试将正整数分配给项目列表。正整数是用户输入。我正在使用 Ruby 1.9.3-p327
如果用户输入负数(任何 <0)或 0 本身或小数或任何字母数字数据,我在 while 循环中放置了一个条件,要求用户再次输入数字。
我当前在循环中的代码是:-
input_data = gets.chomp
while (input_data.to_i <= 0 || input_data.include?(".") || /^[-+]?[0-9]+$/.match(input_data).nil?)
puts "input_data can't be 0 or a negative integer or in decimal format or alphanumeric. \nPlease input appropriate input_data as a +ve integer "
input_data = gets.chomp
end
我相信会有一个更优化的方法来做到这一点。我猜它可能正在使用组合的正则表达式检查。我是 Ruby 中正则表达式的新手。有什么建议么?
谢谢