2016-04-21 102 views
0

我一直在試圖編寫一個代碼來檢查這個數字是否是類繼承的閏年。但我得到了它與year開始第二行的錯誤消息:Ruby gets.chomp和類繼承

Line 7: private method `chomp' called for nil:NilClass (NoMethodError) 

我要讓用戶鍵入年,然後分別返回迴應---「這是一個閏年!」或者「糟糕!這不是閏年」。但在我看來,gets.chompclass相互碰撞。我怎麼解決這個問題?

下面是我的代碼(我修改了前者但它仍然無法正常工作):

class Year 
    def initialize(year) 
    @@year = year 
    end 

    puts "Type the year to see whether it is a leap year!" 
    year = gets.chomp 
end 


class DivideIt 
    def initialize(year) 
    @year = year 
    end 

    if @year % 4 == 0 || @year % 100 != 0 || @year % 400 == 0 
    return true 
    else 
    return false 
    end 
end 

year < DivideIt 

謝謝。 :)

+0

你的意思是'DivideIntoFHund'的除法將檢查父類中定義的所有三個條件嗎? –

+0

三個條件??我的意思是DivideIntoFHund繼承了DivideIntoFour和DivideIntoHund的條件,以便檢查給定的數字(year = gets.chomp)。 –

+0

開始格式化您的代碼並關閉打開的類定義。 'gets.chomp'只是以下糟糕代碼的受害者。 – mudasobwa

回答

0

變化

year = gets.chomp 

year = gets.to_s.chomp 

調用to_s將轉換您的nil爲空字符串。