我正在尝试使用Swift中的while循环构建基本的fibonacci序列。
我在while循环中使用的条件是while var next< = var maxNum,其中next是包含要追加的数组中最新元素的整数,maxNum是一个整数,表示要放入的最大元素包含在数组中(为了测试while循环,我将其硬编码为10)。
在操场上运行以下代码时出现以下错误: "执行被中断,原因:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)"
在这种情况发生之前,while循环运行了90次,让我知道我的情况正在发生变化......在几次循环之后,var next应该大于10 ......不确定发生了什么。
import UIKit
var myArray = [0,1]
var maxNum = 10
var next = 0
while next <= maxNum{
var last = myArray.last!
var lastLast = myArray[myArray.count-2]
var next = last + lastLast
myArray.append(next)
}
println(myArray)
println(myArray.last!)
答案 0 :(得分:3)
问题是你在循环体内重新声明next
:
var next = last + lastLast
应该是
next = last + lastLast
进行此更正后,您的代码运行正常,产生以下结果:
[0, 1, 1, 2, 3, 5, 8, 13]
13