新手问题 初学 ruby,看不出来为什么报错了

miqiu1987 · 2013年08月06日 · 最后由 miqiu1987 回复于 2013年08月06日 · 2609 次阅读

class Leap_year def initialize puts 'Please input a year:' end def leap_year?(year) @year = year if @year % 400 == 0 puts 'Leap year!' elsif @year % 4 == 0 && @year % 100 != 0 puts 'Leap year!' else puts 'Not a leap year' end end end

leap = Leap_year.new testyear=gets.chomp.to_i leap.leap_year?(testyear)

报错信息: leap_year.rb:18: private method `chomp' called for nil:NilClass (NoMethodError) Please input a year: 初步怀疑是这里的问题 testyear=gets.chomp.to_i,但是不明白是什么问题,请大牛们指点指点。

我运行怎么没出错?

没报错。。

ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux] 运行没出错。。。

难道是我少装了什么东西么,我在 windows 下执行的

这个得在命令行下运行

G:\个人学习\1.ruby 和 phython 语言学习\练习>ruby Fib_cal.rb This is initialize! 5 fib end! 1 1 2 3 5 8 13 fib_list end! Fib_cal.rb:23:in fib_simple': stack level too deep (SystemStackError) from Fib_cal.rb:23:infib_simple' from Fib_cal.rb:48 貌似在命令行运行也不行的。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号