加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 范围值不佳

发布时间:2020-12-17 04:23:25 所属栏目:百科 来源:网络整理
导读:当我运行以下代码时: def db(y) return self % y == 0endputs "To number:"n = gets.chompfor i in 1..n if i.db(3) puts "Fizz!" if i.db(5) puts "FIZZBUZZ!" end elsif i.db(5) puts "Buzz!" else puts i endend 我得到了“范围错误值”错误.为什么会发
当我运行以下代码时:
def db(y)
  return self % y == 0
end

puts "To number:"
n = gets.chomp

for i in 1..n
  if i.db(3)
    puts "Fizz!"
    if i.db(5)
      puts "FIZZBUZZ!"
    end
  elsif i.db(5)
    puts "Buzz!"
  else
    puts i
  end
end

我得到了“范围错误值”错误.为什么会发生这种情况我该怎么办呢?对某些值使用变量的正常范围可以完美地工作,包括for循环,为什么这不起作用?

注意:我希望for循环保持为for循环.

解决方法

请按以下步骤操作:
n = gets.chomp.to_i

gets.chomp将为您提供String实例.你需要把它作为Fixnum.否则1 ..“4”例如不是有效范围.所以错误“范围错误值”错误. String#to_i是你的朋友.

2.0.0p0 :001 > 1.."2"
ArgumentError: bad value for range
    from (irb):1
    from /home/kirti/.rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in `<main>'
2.0.0p0 :002 > 1..2
 => 1..2 
2.0.0p0 :003 >

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读