Ruby中的丑陋数字

时间:2017-09-20 06:33:43

标签: ruby

我是学习Ruby语言的初学者。 我是从leetcode学习的。

这里有一个解决方案,但我不知道为什么? 我想知道解决方案中的结构是什么

丑陋的数字 溶液:

def is_ugly(num)
   (2..5).each { |i| num /= i while (num % i == 0) } if num > 0 
   num == 1
end   
  1. 我不知道为什么'如果'必须落后'}'

    如果删除'if'statement

    ,将会出错
      

    语法错误,意外的输入结束,期待keyword_end

    1. while (num % i == 0) 我无法理解这句话

      从我所知道的看起来像:

    2. 例如。

      while conditional [do]
           code
      end
      

      非常感谢

1 个答案:

答案 0 :(得分:4)

ifwhile都是所谓的后缀(短)形式。

试试这些:

puts "yes" if true

puts "yes" if false

它基本上与:

相同
if true
  puts "yes"
end

代表while

num /= i while (num % i == 0) 

完全相同
while (num % i == 0)
  num = num / i
end