当我在Playground中使用for循环时,一切都很好,直到我将for循环的第一个参数更改为最大值。(按降序迭代)
这是一个bug吗?还有其他人有吗?
for index in 510..509
{
var a = 10
}
显示将要执行的迭代次数的计数器一直在滴答作响……
当我在Playground中使用for循环时,一切都很好,直到我将for循环的第一个参数更改为最大值。(按降序迭代)
这是一个bug吗?还有其他人有吗?
for index in 510..509
{
var a = 10
}
显示将要执行的迭代次数的计数器一直在滴答作响……
当前回答
var sum1 = 0
for i in 0...100{
sum1 += i
}
print (sum1)
for i in (10...100).reverse(){
sum1 /= i
}
print(sum1)
其他回答
您可以使用reversed()方法轻松反转值。
var i:Int
for i in 1..10.reversed() {
print(i)
}
reversed()方法反转值。
var sum1 = 0
for i in 0...100{
sum1 += i
}
print (sum1)
for i in (10...100).reverse(){
sum1 /= i
}
print(sum1)
至于Swift 2.2, Xcode 7.3(2016年6月10日):
for (index,number) in (0...10).enumerate() {
print("index \(index) , number \(number)")
}
for (index,number) in (0...10).reverse().enumerate() {
print("index \(index) , number \(number)")
}
输出:
index 0 , number 0
index 1 , number 1
index 2 , number 2
index 3 , number 3
index 4 , number 4
index 5 , number 5
index 6 , number 6
index 7 , number 7
index 8 , number 8
index 9 , number 9
index 10 , number 10
index 0 , number 10
index 1 , number 9
index 2 , number 8
index 3 , number 7
index 4 , number 6
index 5 , number 5
index 6 , number 4
index 7 , number 3
index 8 , number 2
index 9 , number 1
index 10 , number 0
Xcode 6 beta 4增加了两个函数来迭代除一个步骤以外的范围: Stride (from: to: by:)用于独占范围,Stride (from: through: by:)用于包含范围。
要以相反的顺序迭代一个范围,它们可以如下所示:
for index in stride(from: 5, to: 1, by: -1) {
print(index)
}
//prints 5, 4, 3, 2
for index in stride(from: 5, through: 1, by: -1) {
print(index)
}
//prints 5, 4, 3, 2, 1
注意,这两个都不是Range成员函数。它们是返回StrideTo或StrideThrough结构体的全局函数,它们与Range结构体的定义不同。
这个答案的前一个版本使用了Range结构体的by()成员函数,该函数在beta 4中被删除。如果您想了解它是如何工作的,请检查编辑历史记录。
反转一个数组只需要一个步骤。reverse()
var arrOfnum = [1,2,3,4,5,6]
arrOfnum.reverse()