Ruby “的代码”;“嘶嘶作响”;不';不行。只有";“嘶嘶作响”;多次返回

Ruby “的代码”;“嘶嘶作响”;不';不行。只有";“嘶嘶作响”;多次返回,ruby,fizzbuzz,Ruby,Fizzbuzz,有人能解释一下为什么下面的代码不能正常工作吗?它只返回“fizzbuzz”100次作为答案。多谢各位 def fizzbuzz(number) idx = 0 while idx <= number num = number[idx] if num % 3 == 0 && num % 5 == 0 puts 'fizzbuzz' elsif num % 5 == 0 puts 'buzz' elsif num

有人能解释一下为什么下面的代码不能正常工作吗?它只返回“fizzbuzz”100次作为答案。多谢各位

def fizzbuzz(number)
  idx = 0
  while idx <= number
    num = number[idx]
    if num % 3 == 0 && num % 5 == 0
      puts 'fizzbuzz'
    elsif num % 5 == 0
      puts 'buzz'
    elsif num % 3 == 0
      puts 'fizz'
    else 
      puts num
    end
    idx += 1
  end
end

fizzbuzz(100)
def fizzbuzz(数字)
idx=0

idx在这里有两个问题:


  • num=number[idx]
  • idx
    变量应用于检查,而不是
    num

    def fizzbuzz(number)
      idx = 0
      while idx <= number
        if idx % 3 == 0 && idx % 5 == 0
          puts 'fizzbuzz'
        elsif idx % 5 == 0
          puts 'buzz'
        elsif idx % 3 == 0
          puts 'fizz'
        else 
          puts idx
        end
        idx += 1
      end
    end
    
    fizzbuzz(100)
    
    def fizzbuzz(数字)
    idx=0
    
    虽然idx我没有意识到有一个下标操作符用于
    Fixnum
    s。很酷
    num=number[idx]
    这是什么意思?使用“number[idx]”作为传递变量毫无意义。这就是为什么我给它赋值为“num”。我没有意识到我应该使用idx作为传递变量。@Asfand:问题是为什么使用
    number[idx]
    而不是,比如说,
    number
    ?“因为你是局部变量num的number[idx]。返回值number[idx]是0。number[idx]的返回值实际上并不总是0。例如,100[2]是1。因此,假设任何
    整数都是
    0
    是正确的吗?否。例如:对于7[0].[3],255[0].[7]得到0111,而对于255[0].[7]得到1111111。对于65535,您可以获得116次。非常感谢@Cyzanfar为您提供的回答/帮助。帮助很大。我是编程新手,刚刚开始学习。