如何使用while迭代器实现square_array方法:对数组元素求平方并返回新数组
实现使用while迭代器的square_array方法
没问题,这就帮你搞定这个Ruby方法!按照要求用while迭代器来实现的话,完整代码如下:
def square_array(array) new_array = [] index = 0 while index < array.length new_array << array[index] ** 2 index += 1 end new_array end
代码细节解释:
- 先初始化一个
index变量从0开始,用来定位当前遍历到原数组的哪个元素 while index < array.length是循环的核心条件:只要索引还没超出数组的有效范围(数组索引从0开始,最后一个元素的索引是array.length - 1),就继续执行循环- 每次循环里,用
array[index] ** 2计算当前元素的平方(Ruby里**是幂运算运算符,用来算平方比*更直观),再把结果追加到new_array里 - 重中之重:
index += 1必须加!每次循环后让索引自增,才能遍历下一个元素,漏了这步会直接陷入无限循环哦 - 最后返回我们构建好的平方值新数组
测试示例:
调用这个方法试试效果:
puts square_array([1, 2, 3, 4]).inspect # 输出: [1, 4, 9, 16] puts square_array([-2, 0, 5]).inspect # 输出: [4, 0, 25]
不管是正数、负数还是零,都能正确计算出对应的平方值。
内容的提问来源于stack exchange,提问作者Peter Drake
相关产品推荐
相关产品推荐

