【问题标题】:Swift 3 - Balancing an ArraySwift 3 - 平衡数组
【发布时间】:2018-01-26 02:34:57
【问题描述】:

我正在尝试平衡 swift 3 Playgrounds 中的数组。

谁能告诉我为什么控制台为 myBalancePoint 打印 0 而不是 8,它代表 myFirstArray[4]

代码如下:

import UIKit

var divSum = Int()
var myBalancePoint = Int()
let myFirstArray = [1, 2, 5, 8, 4, 4]
divSum = myFirstArray.reduce(0, {$0 + $1}) / 2

print(divSum)

let firstPoint = myFirstArray[0]
print (firstPoint)

let secondPoint = myFirstArray[0] + myFirstArray[1]
print (secondPoint)

let thirdPoint = myFirstArray[0] + myFirstArray[1] + myFirstArray[2]
print (thirdPoint)

let fourthPoint = myFirstArray[0] + myFirstArray[1] + myFirstArray[2] + myFirstArray[3]
print (fourthPoint)

let fifthPoint = myFirstArray[0] + myFirstArray[1] + myFirstArray[2] +  myFirstArray[3] + myFirstArray[4]
print (fifthPoint)

let sixthPoint = myFirstArray[0] + myFirstArray[1] + myFirstArray[2] +  myFirstArray[3] + myFirstArray[4] + myFirstArray[5]
print (sixthPoint)


if fourthPoint > divSum {
    let myBalancePoint = myFirstArray[4]
}
print (myBalancePoint)

【问题讨论】:

  • 它打印出的是这个var myBalancePoint = Int()而不是这个let myBalancePoint
  • 谢谢。您的回答有所帮助,但不完全。现在,控制台打印 4,这是 myFirstArray[4] 的索引号。我试图让控制台打印 8,这是索引的值。还有什么建议吗?
  • 没关系,它应该打印 4,因为 myFirstArray[4] 的值为 4。而 myFirstArray[3] 的值为 8。再次感谢!

标签: arrays swift3 swift-playground


【解决方案1】:

试试

if fourthPoint > divSum {
     myBalancePoint = myFirstArray[4]
}
print (myBalancePoint)

在 if 条件范围内,您定义了一个新常量 let myBalancePoint,因此 var myBalancePoint = Int() 的值不会被更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    相关资源
    最近更新 更多