修改for循环中的变量

时间:2017-02-24 20:35:43

标签: swift

以下代码将打印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)

3 个答案:

答案 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)可以取值并保持它。