《Swift开发实战》——第2章,第2.3节流程控制

    xiaoxiao2024-07-22  104

    本节书摘来自异步社区《Swift开发实战》一书中的第2章,第2.3节流程控制,作者 李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看

    2.3 流程控制在本章前面的实例2-1程序中,下面这些都是实现流程控制工作的实现代码。

    switch("abc") { case "123": println("123"); case "456","abc": println("123 abc "); default: println("没有找到合适的匹配"); } var i:Int = 0; while( i<10) { i++; println(i); } do { i--; println(i); }while(i>0); for index in 1...5 { println("index=\(index)"); }

    在Swift语言中,使用关键字if和switch来进行条件判断操作,使用for-in、for、while和do-while来进行循环操作。在Swift程序中,可以省略包含条件和循环变量括号,但是必须保留语句体中的大括号。例如,下面所示的演示代码。

    let individualScores = [75, 43, 103, 87, 12] var teamScore = 0 for score in individualScores { if score > 50 { teamScore += 3 } else { teamScore += 1 } } teamScore

    在if语句中,条件必须是一个布尔表达式——这意味着像if score { ... }这样的代码将报错,而不会隐式地与 0 做对比。

    在Swift语言中,有些变量的值是可选的,一个可选的值可能是一个具体的值或者是nil(此时表示值缺失)。在Swift程序中,可以联合使用if和let来处理值缺失的情况,具体方法是在类型后面加一个问号“?”来标记这个变量的值是可选的。参见如下所示的演示代码。

    var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" }

    在Swift语言中,如果变量的可选值是nil,条件会判断为false,大括号中的代码会被跳过。如果不是nil,则会将值赋给let后面的常量,这样在代码块中就可以使用这个值了。

    在Swift语言中,关键字switch可以支持任意类型的数据以及各种比较操作,而不仅仅是整数以及测试相等。例如,如下所示的演示代码。

    let vegetable = "red pepper" switch vegetable { case "celery": let vegetableComment = "Add some raisins and make ants on a log." case "cucumber", "watercress": let vegetableComment = "That would make a good tea sandwich." case let x where x.hasSuffix("pepper"): let vegetableComment = "Is it a spicy \(x)?" default: let vegetableComment = "Everything tastes good in soup." }

    在Swift语言中,运行switch中匹配到的子句之后,程序会退出switch语句,不会继续向下运行,所以不需要在每个子句结尾写break。

    在Swift语言中,可以使用for-in来遍历字典,需要两个变量来表示每个键值对。参见如下所示的演示代码。

    let interestingNumbers = [ "Prime": [2, 3, 5, 7, 11, 13], "Fibonacci": [1, 1, 2, 3, 5, 8], "Square": [1, 4, 9, 16, 25], ] var largest = 0 for (kind, numbers) in interestingNumbers { for number in numbers { if number > largest { largest = number } } } largest

    在Swift语言中,可以使用while来重复运行一段代码直到不满足条件为止,循环条件可以在开头也可以在结尾。例如,如下所示的演示代码。

    var n = 2 while n < 100 { n = n * 2 } n var m = 2 do { m = m * 2 } while m < 100 m

    在Swift语言中,可以在循环中使用“..”字符来表示范围,也可以使用传统的写法来实现,这两种方式是完全等价的。例如,如下所示的演示代码。

    var firstForLoop = 0 for i in 0..3 { firstForLoop += i } firstForLoop var secondForLoop = 0 for var i = 0; i < 3; ++i { secondForLoop += 1 } secondForLoop
    最新回复(0)