学习编写swift代码,查看多维数组,想要遍历数组,撤销存储在第二列中的数学函数,然后将其第一列值添加到4个单独的数组(尚未创建),以便最后我将有4个数组,包含第一列的数字。
但是在线
Function = array3D[index]
我收到错误:快速执行被中断原因exc_bad_access
有人可以帮忙吗?代码
var array3D: [[String]] = [["1", "+"], ["3", "-"], ["5", "x"], ["7", "/"]]
var arrayAdd = [""]
var arrayMinus = [""]
var arrayMultiple = [""]
var arrayDivide = [""]
var count = array3D.count
var countIsZero = false
if count != 0 {
countIsZero = true
}
if countIsZero {
for index in 0...count {
var Function = ""
Function = array3D[count][1]
println(Function)
switch Function {
case "+": arrayAdd.append(array3D[count][0])
case "-": arrayMinus.append(array3D[count][0])
case "x": arrayMultiple.append(array3D[count][0])
case "/": arrayDivide.append(array3D[count][0])
default: ""
}
}
}
答案 0 :(得分:4)
count
将为4
,因为该数组包含四个元素。但是,索引是从零开始的,所以你应该这样做:
for index in 0...count-1
避免使用会导致异常的数字4
进行索引。
答案 1 :(得分:2)
克劳斯说的是正确的。此外:
case
确保每个count
语句都不会超出范围。 for index in 0...count
声明,但我从未看到您使用index
,只使用count
。 index
将是从0开始计算的数字。答案 2 :(得分:1)
Function = array3D[4]
没有提及< - throw exc_bad_access
您的数组索引从0
转到array3D.count - 1
您需要将for循环更改为以下内容:0..<count
(与0...count-1
相同)
for index in 0..<count {
...
}
同样在您的for循环中,您使用count
代替index
:
在更正后的循环下方:
for index in 0..<count {
var Function = ""
Function = array3D[index][1]
println(Function)
switch Function {
case "+": arrayAdd.append(array3D[index ][0])
case "-": arrayMinus.append(array3D[index ][0])
case "x": arrayMultiple.append(array3D[index ][0])
case "/": arrayDivide.append(array3D[index ][0])
default: ""
}
}