You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算数组中部分元素的和?Swift数组前5元素求和问题

计算数组前N个元素的和

你之前的代码问题出在0..<num[5]这里——num[5]取的是数组第6个元素的值(31),所以这个循环是遍历0到30的索引,和你要的前5个元素完全不搭边。正确的索引范围应该是0..<5,或者用更简洁的方式直接截取数组前缀。

下面给你几种可行的实现方式:

方法一:for循环遍历正确索引

var num = [31, 28, 31, 30, 30, 31, 30, 31, 30, 29, 31, 31]
var total = 0
// 遍历前5个元素的索引:0到4
for i in 0..<5 {
    total += num[i]
}
print(total) // 结果:150

方法二:用prefix截取前缀 + reduce求和

Swift的数组有prefix(_:)方法,可以直接获取前n个元素,再配合reduce快速计算总和,代码更简洁:

var num = [31, 28, 31, 30, 30, 31, 30, 31, 30, 29, 31, 31]
let total = num.prefix(5).reduce(0, +)
print(total) // 结果:150

方法三:数组下标范围 + reduce求和

直接通过下标范围0..<5截取数组的子序列,再用reduce求和:

var num = [31, 28, 31, 30, 30, 31, 30, 31, 30, 29, 31, 31]
let total = num[0..<5].reduce(0, +)
print(total) // 结果:150

如果数组元素个数不足5,prefix(5)会自动取到数组末尾,不会越界,这一点比直接遍历索引更安全。

内容的提问来源于stack exchange,提问作者daria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:57:17