首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby代码效率

Ruby代码效率
EN

Stack Overflow用户
提问于 2015-06-02 14:26:14
回答 3查看 54关注 0票数 0

有没有办法使这段代码更短更简单?

代码语言:javascript
复制
loop do 
    if possibleSet.split(" ").map(&:to_i).any? {|e| (e<0 || e>12)}
        print "Please enter valid numbers (between 1 and 12): "
        possibleSet = gets
        errorinput = false
    else
        errorinput = true
    end
    break if errorinput
end
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-02 14:46:11

重构了一点:)

代码语言:javascript
复制
loop do 
    print "Please enter valid numbers (between 1 and 12): "
    possibleSet = gets.chomp
    break unless possibleSet.split(" ").map(&:to_i).any? {|e| (e<0 || e>12)}
   end
票数 1
EN

Stack Overflow用户

发布于 2015-06-02 15:11:43

下面的代码将检查输入的正确性:

代码语言:javascript
复制
input = loop do
  print "Please enter valid numbers (between 1 and 12): "
                          # ⇓⇓⇓ as many spaces as user wants
  input = gets.chomp.split(/\s+/).map(&:to_i) rescue []
  break input unless input.empty? || input.any? { |i| !(0..12).include? i }
end
票数 1
EN

Stack Overflow用户

发布于 2015-06-02 14:43:08

这将分析数组中的用户输入(不是完全相同的行为,但我希望它更干净,您可以在那里工作)

代码语言:javascript
复制
set = []
until set.all? {|i| (1..11).include?(i) } && !set.empty? do
  set = gets.split(' ').map(&:to_i)
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30598883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档