【发布时间】:2014-06-10 21:52:29
【问题描述】:
我正在尝试使用下面的代码来找到不正确的最大数字;但是,如果一个真正的变量出现在最大数字之前,我希望它给我低于那个数字的数字。我怎样才能改变我的代码来完成这个?
var firstRow = [1: false, 2: false, 3: false, 4: false, 5: true, 6: false]
var smallest = Int.max
var largest = 0
var playerLoc = "3"
for (number, bool) in firstRow {
if playerLoc != "1" && playerLoc != "30"{
if bool == false && number < smallest {
smallest = number
var smallString = ("\(smallest)")
if smallString == playerLoc {
smallest = Int.max
}
else {
smallest = number
}
}
}
else {
smallest = Int.max
}
if playerLoc != "6" && playerLoc != "36" {
if bool == false && number > largest {
largest = number
}
}
else {
largest = 0
}
}
println(smallest)
println(largest)
因此,例如,如果此代码正常工作,则将设置最大值等于 4,设置最小值等于 1 更新: 使用这行代码时,出现错误 Array Index Out of Range
var firstRow = [(1, false), (2, false), (3, false), (4, false), (5, false), (6, false)]
但是,如果我在操场上使用它,它就可以正常工作。
我已将问题缩小到此代码。
if two.contains(player.position) || two.contains(opponent.position) || two.contains(block3.position) {
firstRow[2].1 = true
} else {
firstRow[2].1 = false
}
【问题讨论】:
-
你知道字典是无序的集合吗?因此 firstRow 中的项目不一定会按该顺序迭代。
-
我不知道。你会推荐什么?
-
元组数组可能:
var a = Array<(Int, Bool)>() -
那么我的 int 和 bools 的格式是什么?只是逗号?
-
发布循环和任何访问数组的代码
标签: xcode if-statement for-loop swift