初探Swift四 - 条件控制
Swift条件控制,有for,for...in...,switch,if...else,while等,而跳出条件控制有break,continue,fallthrough。本篇文章变分析这几个控制的特性。
for in相关的如下:
/**
* for - in 循环
*/
//for循环 >=-10 <=10
for i in -10...10{
i*i
}
//遍历一个数组
var arr = ["a", "b", "c"]
for a in arr{
println(a)
}
for (key, value) in enumerate(arr){
println("\(key):\(value)")
}
//遍历一个字典
vardict = ["a":"A","b":"B","c":"C"]
for (key, value) in dict{
println("\(key):\(value)")
}
for相关的如下:
/**
* for 循环
*/
//等同for var i = -100; i<=100; i++
var i = -10
for ; i<=10; i++
{
i*i
}
if相关的如下:
//if else
iftrue{
}else{
}
switch相关的如下:
/**
*switch,可以对Int,String,Bool,Float,Double进行判断
*
*不需要显式写break;
*/
var switchValue = "a"
switchswitchValue{
case "a":
println("a")
case "b":
println("b")
default:
println("d")
}
//判断多个值不能写:
//case "a":
//case "A":
// println("ok");
//而是应该写:
//case "a", "A":
switch高级特性相关的如下:
/**
* switch高级特性
*/
//元组在switch中
//如果想执行第一个case后还想执行第二个case,则添加fallthrough,此时直接进入下面的语句,不进行case判断
var request = (true, "success")
switchrequest{
//这个是正确的
case (true, "success"):
println("true, success")
fallthrough
//这个也是正确的,可以忽略元组的第一个元素,将剩下的元素判断
case (true, _):
println("true, success")
//这个也是正确的
case (true, let requestStatus):
println("当前登陆状态为:\(requestStatus)");
default:
println("not found!")
}
//switch可以比较范围
var request2 = (5, 12);
switchrequest2{
case (1...8, 10...20):
println("ok")
default:
println("not found!")
}
//switch的case中可以增加逻辑判断
var request3 = (3, 3)
switchrequest3{
case let(x, y) where x==y:
println("\(x)->\(y)")
default:
println("not found!")
}
控制转移相关的如下,break只能跳出一层循环,如果要跳出多层,可以看下面的例子。另外break只能跳出循环,而不是花括号得代码块,比如if:
/**
*控制转移
* fallthrough、break、continue
*/
import UIKit
var board = Array<Array<Int>>()
for i in 0...10{
board.append(Array(count:10, repeatedValue:0))
}
let x = Int(arc4random()%10)
let y = Int(arc4random()%10)
board[x][y] = 1
board
var i = 0, j = 0
mainloop:for i = 0; i<10; i++ {
for j=0; j < 10; j++ {
if board[i][j] == 1 {
break mainloop
}
}
}
println("\(i)-\(j)")