我正在做一个 Ruby 练习,取一个数字并返回等效的单词。下面是我正在处理的带有 if 语句的函数的代码。我放置了不同的字符串来帮助我追踪我的错误在哪里。
前三个条件似乎按照我的意图发挥作用。然而,返回“puts The teens translate works”的条件在某种程度上是正确的,尽管它不符合我传入的数字的条件。
我已经包含了一些我一直传递的数字来说明我的意思。我的意图是如果数字大于 13 但小于 20,不能被 10 整除,也不能被 11、12、13 或 15 整除,则条件为真。例如,如果我传入 41,则条件似乎是正确,因为“青少年翻译工作”打印。我觉得我错过了一些简单的东西。
在此先感谢您的帮助!
def in_english
if @number == 11 || @number == 12 || @number == 13 || @number == 15
puts "The number is 11, 12, 13 or 15"
elsif (@number >0 && @number < 10)
puts "Hello I made it hear"
elsif (@number >= 10 && @number < 100 && @number%10 == 0)
puts "The number is greater than equal 10 & < 100 and divisible by 10"
elsif ((@number > 13 && @number < 20 ) && @number%10 != 0 && @number != 11 || @number != 12 || @number != 13 || @number != 15)
puts "The teens translator works"
elsif (@number > 20)
puts "Over twenty_trans"
else
puts "End of if block"
end
end
Say.new(47).in_english
Say.new(41).in_english
Say.new(52).in_english