我发现.each do很难坚持,所以我希望经常使用c for loop语法,这似乎不起作用,所以我尝试了一段时间,但仍然有错误。
我试过了。

i = 0
while i < SampleCount
    samples[i] = amplitude
    amplitude *= -1
    i++
end

我在这里收到了关于最后陈述的投诉。

最佳答案

你的代码有几个问题。与其只是修正错误,我建议你最好从长远来看学习ruby方法-它将节省你以后的时间和精力。在这种情况下,

5.times do |i|
  samples[i] = amplitude  # assumes samples already exists and has 5 entries.
  amplitude *= -1
end

如果你坚持保持类似的风格,你可以这样做:
samples = []
i = 0
while i < sample_count
    samples << amplitude  # add new item to array.
    amplitude *= -1
    i += 1                # you can't use ++.
end

注意,SampleCount的首字母大写,按照ruby惯例,意味着一个常量,我猜这不是你真正的意思。

关于ruby - 理解C样式 ruby 循环的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1617398/

10-17 03:11