//先来一个标准的 var planets = ["A","B","C","D","E"] for planet in planets { println(planet) } //planet这个变量实际上是用let来赋值的,所以在循环中是不能改变变量内容的, //比如想在循环内部改变数组内容的话,可以用下面这个方法获得index planets = ["A","E"] for (index,planet) in enumerate(planets) { println("\(index): \(planet)") } //下面这个例子和上面实质是一样,只不过没明确指定名称,可以通过索引获得 planets = ["A","E"] for planet in enumerate(planets) { println("\(planet.0): \(planet.1)") } //复杂点的,可以通过键值对变量来访问字典型 var data = ["A": 1,"B": 2,"C": 4] for (index,(key,value)) in enumerate(data) { println("\(index) \(key) \(value)") } //简单点儿的,简化对范围循环的定义 for i in 1...100 { } //还可以逆序 for i in reverse(1...100) { } //还有更复杂的 自动增值,减值循环 for x in stride(from: 1.0,through: 5,by: 0.2) { println(x) }
至于跳出循环 Swift也算是很给力啊,用Label可以指定跳出(或者继续)的位置,
<pre name="code" class="objc">loop: for i in 1...10 { println(i) for j in 10...20 { println(j) switch j { case 11 : continue loop default: break } } }