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,可以对IntStringBoolFloatDouble进行判断

 *

 *不需要显式写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!")

}

//switchcase中可以增加逻辑判断

var request3 = (3, 3)

switchrequest3{

    case let(x, y) where x==y:

        println("\(x)->\(y)")

   default:

       println("not found!")

}

    控制转移相关的如下,break只能跳出一层循环,如果要跳出多层,可以看下面的例子。另外break只能跳出循环,而不是花括号得代码块,比如if:

/**

 *控制转移

 * fallthroughbreakcontinue

 */

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)")

标签: Swift, IOS

添加新评论