加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

浅谈Swift之控制流( if 和 switch 、for-in 、 for 、 while 和

发布时间:2020-12-14 07:13:30 所属栏目:百科 来源:网络整理
导读:声明:内容大部分来自于《THE SWIFT PROGRAMMING LANGUAGE》 我只是加以修改 使用 if 和 switch 来进行条件操作,使用 for-in 、 for 、 while 和 repeat-while 来进行循环。包裹条件和循环 变量括号可以省略,但是语句体的大括号是必须的。 if let scores = [

声明:内容大部分来自于《THE SWIFT PROGRAMMING LANGUAGE》
我只是加以修改
使用 if 和 switch 来进行条件操作,使用 for-in 、 for 、 while 和 repeat-while 来进行循环。包裹条件和循环 变量括号可以省略,但是语句体的大括号是必须的。


if

let scores = [75,44,55,62,88]
        var teamScore = 0;
        for score in scores {
            //if语句中,条件必须是一个布尔表达式
            if score > 50 {
                teamScore += 3
            } else {
                teamScore += 1
            }
        }
        print(teamScore);

可以使用if和let来处理值缺失的情况,这些值由可选值来表示,一个可的选值是一个具体的值或者是nil以表示缺失
在类型后面加上一个问好来标记这个变量(表示可选的值)

let optionalString : String? = "hello"
        print(optionalString == nil)
        // false

        let optionalName : String? = nil
        var greeting = "hello"
        if let name = optionalName {
            greeting = "hello (name)"
        }
        print(greeting)

另一种处理可选值的方法是通过使用 ?? 操作符来提供一个默认值。如果可选值缺失的话,可以使用默认值来代替。

let firstName : String? = nil
        let secondName : String = "daisuke"
        let resultName = "hello,(firstName ?? secondName)"
        print(resultName) // hello,daisuke

switch

很多人奇怪,无论是Java或者oc语言switch都有break跳出,但是
运行 switch 中匹配到的子句之后,程序会退出 switch 语句,并不会继续向下运行,所以不需要在每个子句结尾 写 break
另外注意的是:default是必须要写的,否则出错

// switch支持任意类型的数据
        let vegetable = "haha,red"
        switch vegetable {
        case "xixi":
            print("xixi")
        case "hahas":
            print("hahas")
        case let red where red.hasSuffix("red"):
            // 将vegetable赋给red,判断red有没有“red这个字符串”
            print("red")
        default:
            print("default")
        }

for-in

使用 for-in 来遍历字典,需要两个变量来表示每个键值对。
字典是一个无序的集合,所以他们的键和值以 任意顺序迭代结束。

let numberDict = [
            "prime" : [1,2,45,88],"square" : [1,1,501]
        ]
        var largest = 0;
        var type = ""
        for (kind,numbers) in numberDict {
            for number in numbers {
                if number > largest {
                    largest = number
                    type = kind
                }
            }
        }
        print(type)
        print(largest)

while

var n = 2
        while n < 100 {
            n = n * 2;
        }
        print(n)

repeat-while

至少循环一次(类似Java的do-while)

// 至少循环一次(类似Java的do-while)
        var m = 2
        repeat {
            m = m*2
        } while m < 2
        print(m)

for

// ..<不包括上界
        var firstForLoop = 0
        // 不包含4
        for i in 0..<4 {
            firstForLoop += i
        }
        print(firstForLoop)

        // ...包括上界
        var firstForLoop1 = 0
        // 包含4
        for i in 0...4 {
            firstForLoop1 += i
        }
        print(firstForLoop1)

        // 不包括上界
        var firstForLoop2 = 0
        // 不包含4
        for var i = 0; i<4; i++ {
            firstForLoop2 += i
        }
        print(firstForLoop2)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读