Swift - 虽然循环不起作用

时间:2014-10-08 17:22:05

标签: arrays swift while-loop

我正在尝试使用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!)

1 个答案:

答案 0 :(得分:3)

问题是你在循环体内重新声明next

var next = last + lastLast

应该是

next = last + lastLast

进行此更正后,您的代码运行正常,产生以下结果:

[0, 1, 1, 2, 3, 5, 8, 13]
13

Demo.