【问题标题】:Swift - While Loops not functioningSwift - While 循环不起作用
【发布时间】:2023-03-22 19:39:01
【问题描述】:

我正在尝试在 Swift 中使用 while 循环构建一个基本的斐波那契数列。

我在while循环中使用的条件是while var next

在 Playground 中运行以下代码时出现以下错误: "执行被中断,原因:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=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!)

【问题讨论】:

  • 你有没有单步调试过你的代码?或者你有没有从你的 while 循环中输出值?你做了什么来尝试调试这个?
  • 不太了解 swift,但你不是在循环内声明了一个 new next 变量吗?这将导致外部 next 保持为 0。
  • 谢谢,你是对的。

标签: arrays swift while-loop


【解决方案1】:

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

var next = last + lastLast

应该是

next = last + lastLast

一旦您进行此更正,您的代码就会运行良好,并产生以下结果:

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

Demo.

【讨论】:

    猜你喜欢
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2015-03-09
    • 1970-01-01
    • 2022-12-12
    • 2020-03-30
    相关资源
    最近更新 更多