我在Ruby中有一个简单的奇数或偶数测试,但它';它不工作了

我在Ruby中有一个简单的奇数或偶数测试,但它';它不工作了,ruby,Ruby,我是一个初学者,但我不明白为什么我的代码不能在ruby中工作。即使这个数字完全可以被2整除,它也只返回“那不是偶数” def numbertest() print "Input your number here." number1=gets.chomp print "Okay, let's see if #{number1} 's odd or even." if number1.even? print "That's even." else p

我是一个初学者,但我不明白为什么我的代码不能在ruby中工作。即使这个数字完全可以被2整除,它也只返回“那不是偶数”

def numbertest()
print "Input your number here."
number1=gets.chomp
print "Okay, let's see if #{number1} 's odd or even."
    if number1.even? 
        print "That's even."
    else
        print "That's not even."
    end 
end

numbertest()

number1
是一个字符串。它永远不会满足
甚至?
。但奇怪的是,它应该返回一个未定义的方法错误,但您似乎没有这个错误。

number1
是一个字符串。它永远不会满足
甚至?
。但奇怪的是,它应该返回一个未定义的方法错误,但您似乎没有这个错误。

gets.chomp
返回一个字符串。调用
number1
上的\u i
,使其成为整数并响应
偶数?

def numbertest()
print "Input your number here."
number1=gets.chomp.to_i
print "Okay, let's see if #{number1} 's odd or even."
    if number1.even? 
        print "That's even."
    else
        print "That's not even."
    end 
end

get.chomp
返回一个字符串。调用
number1
上的\u i
,使其成为整数并响应
偶数?

def numbertest()
print "Input your number here."
number1=gets.chomp.to_i
print "Okay, let's see if #{number1} 's odd or even."
    if number1.even? 
        print "That's even."
    else
        print "That's not even."
    end 
end

您的代码无法工作,您正在对字符串(
number1
)调用数字方法(
偶数?
)此处出现错误,这是无效的ruby代码。它甚至不应该运行,更不用说不工作了
偶数?
不是字符串的有效方法。您的代码无法工作,您正在对字符串(
number1
)调用数字方法(
偶数?
)。它甚至不应该运行,更不用说不工作了<代码>偶数?不是字符串的有效方法。这很有效!我打电话给你。即使输入是数字,gets.chomp是否始终返回字符串?我也试着用模运算符来做,但那不起作用。实际上,返回字符串的是
get
chomp
删除字符串的最后一个字符。另一个代码也没有worker,因为问题不在逻辑上,而是在
number1
变量上。还有,你能接受答案吗?-1因为你有一个多余的
chomp
,并且要求OP接受答案,这与这个网站的工作方式不符。@sawa哦,对不起,我认为这会让以后的搜索更容易。这很有效!我打电话给你。即使输入是数字,gets.chomp是否始终返回字符串?我也试着用模运算符来做,但那不起作用。实际上,返回字符串的是
get
chomp
删除字符串的最后一个字符。另一个代码也没有worker,因为问题不在逻辑上,而是在
number1
变量上。还有,你能接受答案吗?-1因为有一个多余的
chomp
,并且要求OP接受答案,这与本网站的工作方式不符。@sawa oh抱歉,认为这会使以后的搜索更容易。我猜他指的是一些修改过的代码版本,它使用了对字符串有效的方法,比如f.e.
number1%2
:在这种情况下,代码工作,但总是返回“那是偶数”。我猜他指的是代码的某个修改版本,它使用了对字符串有效的方法,比如f.e.
number1%2
:在这种情况下,代码工作,但总是返回“那是偶数”