以下代码将打印abc
5次,然后打印1024
。据我所知,在任何for中,都会自动声明“迭代器”(相当于C(++)/ Java for(int i=1; i<=5; i++)
)。是否有可能实际上不自动创建该变量并使用在for
之前声明的变量,以便它将打印abc
5次然后打印5
,从而修改它?
var i = 1024
for i in 1...5 {
print("abc")
}
print(i)
答案 0 :(得分:3)
@ DrummerB的答案有效,但是如果你想要一个for ... in循环,这也会有效。这是相同的原则 - 在循环外声明你的变量并在其中增加它:
var i:Int = 0
for _ in 0...5 {
print("abc")
i += 1
}
print(i)
由于您没有引用循环变量,因此Swift语法建议使用下划线。
答案 1 :(得分:1)
你可以像这样重写for循环作为while循环:
var i = 1024
i = 1
while i <= 5 {
print("abc")
i = i+1
}
print(i)
答案 2 :(得分:0)
如果你真的想以这种方式使用循环来改变i的值,你可以这样做:
var i=1024
for j in 1...5 {
print("abc")
i = j
}
print(i)
j将在循环中严格使用,因此一旦完成,它的值就会被转储。但是之前声明的变量(在你的情况下是i)可以取值并保持它。