为什么我在这段代码中需要一个局部变量result
?我想当我尝试仅使用 2 个变量时我遇到了一个无限循环,但我不知道如何在代码中识别这个问题并使用调试来理解这个问题。
# 编写一个方法,它接受一个整数 num
并返回
# 0 到 num 之间的所有整数,直到并包括 num
。
def sum_nums(num)
result = 0
i = 0
while i <= num
result += i
i += 1
end
return result
end
最佳答案
因此,为了让这段代码起作用,您需要知道三件事:您要数到的数字 (num
)、数字的当前值 (i
), 以及从 0 到 i
的当前总和。 result
是跟踪从 0 到 i
的总和的变量。
但是,这并不是编写此方法的非常 ruby 方式。 while
循环适用于您不知道需要循环多少次的情况。在这种情况下,您知道循环次数,因此迭代器更适合此目的。
def sum_nums(num)
(0..num).reduce(:+)
end
上述方法将返回与您的方法相同的结果。
关于ruby - 为什么在这个算术级数和的代码中需要第三个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39949165/