【发布时间】:2018-02-09 17:50:04
【问题描述】:
所以,我是新来的 swift 并试图做一个循环计算,我将描述它
我有一个数组,上面已经有几个元素
所以我声明了一个变量来执行一个值为 2 的循环,(i=2)
然后,从另一个方程我得到一个 int 数,它定义了数组中元素的最终数量(比如,limit = 19)
所以我当前的代码如下所示:
//I declare my array
var velocityArray: [Double] = []
var densityArray: [Double] = []
//first and second element appended after declaring by another function
while i <= limit
{
var velocity = initialflow/(densityArray[i - 1] * area)
velocityArray.append(velocity)
i = i + 1
}
因此,当我尝试运行此代码时,在计算可变速度的行上出现“索引超出范围”错误。
如果我声明我的变量 limit 等于 2,那么循环变量 'i' 和 'limit' 变量都相等。事实证明它运行良好,它正确地将元素附加为数组的第三个元素,但如果我尝试执行循环它就无法工作,这可能是一个愚蠢的问题,但我似乎无法自己想办法。
感谢大家的阅读和帮助,干杯。
【问题讨论】:
-
"由另一个函数声明后附加的第一个和第二个元素" 也许,但你需要显示。 显示您的代码。就您实际显示的代码而言,您的任何代码都没有给
densityArray任何元素。所以它是空的。所以densityArray[0]或其他任何东西都超出了范围。而且我们没有理由知道这种情况会发生变化,不是吗? -
正如@matt 所说,您需要显示更改
densityArray的代码。