Ruby “的代码”;“嘶嘶作响”;不';不行。只有";“嘶嘶作响”;多次返回
有人能解释一下为什么下面的代码不能正常工作吗?它只返回“fizzbuzz”100次作为答案。多谢各位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
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为您提供的回答/帮助。帮助很大。我是编程新手,刚刚开始学习。