• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift基础-3

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

fallthrough 贯穿

case  可以不必写break  

如果不需要知道区间内 每一项的值  可以使用 下划线 —— 来代替变量名 忽略 对该值的访问

for index in 1...5{

println(index)

}

求3的10次幂

let base = 3

let power = 10

var answer = 1

for _ in 1...power{

answer *=base

}

 

        let dog:Character = "????"

        let cow:Character = "????"

        let dogCow = dog + cow

        println(dogCow)

        

        // swift 的算术运算符 不允许溢出,通过溢出运算符来选择值的溢出情况(a& + b

        // 余数运算符  可以用于 浮点数 flost

        8 % 2.5  // equals 0.5

        // 一元减运算符  

        let three = 3

        let minusTree = -three

        let plusThree = -minusTree

        println(minusTree)

        println(plusThree)

        // 一元加运算符

        

        

//        let names = ["anna","alex","bbsc","sdfs"]

//        let count = names.count

//        for i in 0...count-1{

//            println("person \(i) is called \(names[i])")

//            

//        }

//                let a = 5

//        var b = 10

//        b = a

//        if a = b{

//            swift 中赋值运算符,并不将自身作为一个值进行返回,所以编译不合法,帮开发者避免错误,很人性化的语言

//        }

        

        // swift 中的switch 可以允许 case 多个 多号分开即可,且不用写break,多个匹配的会选择第一个,第二个并不进入,也可以是一个范围

        let charA:Character = "a"

        switch charA{

            case "a","A":

            println("haha")

            case "a":

            println("a")

        default:

            println("default")

        }

        

        let count = 3_000_000_000

        let countedThings = "stars in the Milky Way"

        var naturalCount:String

        switch count{

        case 0:

            naturalCount = "no"

        case 1...3:

            naturalCount = "a few"

        case 10...99:

            naturalCount = "several"

        case 100...999:

            naturalCount = "hundreds of"

        case 1000...999_999:

            naturalCount = "thousands of"

        default:

            naturalCount = "millions and millions of"

        }

        println("there are \(naturalCount)\(countedThings)")

        

        

        // 更实用

        // 使用元组在同一个switch语句中测试多个值,元素可以是值,也可以是范围,使用下划线——来匹配所有可能的值

        // 使用(Int,Int)类型的元组来分类下图中的点(x,y

        let somePoint = (1,1)

        switch somePoint{

        case (0,0):

            println("(0,0) is at the origin")

        case (_,0):

            println("(\(somePoint.0),0) is on the x-axis")

        case(0,_):

            println("(0,\(somePoint.1)) is on the y-axis")

        case(-2...2,-2...2):

            println("(\(somePoint.0),\(somePoint.1)) is inside the box")

        default:

            println("(\(somePoint.0),\(somePoint.1)) is outside the box")

        }

        

        // 值绑定 vaLue bindings

        // case分值允许将匹配值绑定到一个临时变量或常量,在case 分支里可以引用

        let anotherPoint = (2,0)

        switch anotherPoint{

        case (let x,0):  // x只是占位符,临时获取条件中一个或多个值

            println("x value is \(x)")

        case (0,let y):

            println("y value is \(y)")

        case let (x,y):

            println("is (\(x),\(y))")

        }

        // 判断额外条件

        let yetAnotherPoint = (1,-1)

        switch yetAnotherPoint {

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

            println("case 0")

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

            println("case 1")

        case let(x,y):

            println("case 2")

        }

        // continue 立刻停止本次循环,还会继续下一次循环

        for index in 1...5{

            if index == 3

            {

                continue

            }

            println("index is \(index)")

        }

        // break 结束整个循环 不会有下次循环

        

        for index in 1...5{

            if index == 3

            {

                break

            }

            println("index is \(index)")

        }

 

        let possibleString:String? = "An optional string"

        let stringVale = possibleString!.hashValue

        // 这种方法叫选择绑定

        if let sValue = possibleString

        {

            let stringValue = sValue.hashValue

        }

        

        let assumedString: String! = "an test string"

        println(assumedString)

        println(assumedString.hashValue)

        

        

        

        // continue 立刻停止本次循环,还会继续下一次循环

        for index in 1...5{

            if index == 3

            {

                continue

            }

            println("index is \(index)")

        }

        // break 结束整个循环 不会有下次循环

        

        for index in 1...5{

            if index == 3

            {

                break

            }

            println("index is \(index)")

        }

        

        // fallthrough 贯穿 执行了case 以后继续向下执行用这个

        let integer = 5

        var desc = "the number \(integer) is"

        switch integer{

        case 2,3,5,7,11://质数

            desc += "a prime number, and also"

            fallthrough

        default:

            desc += "an integer"

        }

        println("desc is \(desc).")

        

        // Labeled Statements  标签语句

        var score = [96,83,43,101,66,70,-5,99]

        for s in score{

            switch s/10{

            case 10:

                continue

            case 9:

                println("\(s) 为优秀")

            case 8:

                println("\(s) 为良好")

            case 7:

                println("\(s) 为中等")

            case 0:

                break

            default:

                println("\(s) 没及格")

            }

        }

        

        // 要求遇到异常 就终止  所以只能用标签

        var score = [96,83,43,101,66,70,-5,99]

        First:for s in score{

            switch s/10{

            case 10:

                continue

            case 9:

                println("\(s) 为优秀")

            case 8:

                println("\(s) 为良好")

            case 7:

                println("\(s) 为中等")

            case 0:

                break First

            default:

                println("\(s) 没及格")

            }

        }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap