如何更换奇数阵列?每次数组奇数时索引超出范围。如果最后一个数组是奇数,它怎么能有一个检查器,它不会进行交换?
var list = [1,2,3,4,5,6,7,8,9,10,11]
if list.count > 0 {
for index in 2..<list.count {
if index % 2 == 0 {
list.swapAt(index, index + 1)
}
}
}
答案 0 :(得分:1)
直到list.count - 1
进行交换,因此它不会超出列表范围。
var list = [1,2,3,4,5,6,7,8,9,10,11]
if list.count > 0 {
for index in stride(from: 2, to: list.count - 1, by: 2){
list.swapAt(index,index+1)
}
}
答案 1 :(得分:0)
想想简单。最大索引为list.count-1
,并且要交换的对中的第一个索引必须小于该值。现在只需使用while
:
var index = 0
while index < list.count-1
{
list.swapAt(index, index+1) // swap current pair
index += 2 // increment by 2 to get to next pair
}