我想创建一个代码来命名有机化学合成物。我在下面写的脚本是:
class Molecule
carbon_number_name = { 1 => 'met', 2 => 'et', 3=> 'prop', 4 => 'but'}; bonds = {1 => 'ano', 2 => 'eno', 3 => 'ino'}
x = Molecule.new
def molecule(hidrogen, carbon_numbers)
@carbon_numbers = carbon_numbers
@hidrogen = hidrogen
if hidrogen = 2*(carbon_numbers)
return 2
elsif hidrogen = 2*(carbon_numbers) + 2
return 1
else
return 3
end
end
puts carbon_number_name[carbon_numbers] + bonds[x.molecule(hidrogen,carbon_numbers)]
方法"分子"并没有像预期的那样工作:尽管有条件,它仍然会回归" 2"错误在哪里?
答案 0 :(得分:2)
您没有比较ifs语句中的元素,只是将它们分配给hidrogen。
要比较两个对象,请使用== method