标签:
知识点:
//: Playground - noun: a place where people can play import UIKit // 1、for in循环 // 这里的i是let型,即常量,如果在循环体重更改i的值的话会报错 for i in 1...4 { println("***********\(i)") } // 如果没用到i值的话,可以将其写成下划线_,这样系统就不会为i开辟存储空间 for _ in 1...4 { println("***********") } // 2、switch语句 // switch要求必须处理所有情况,否则报错。所以default一般是不省略 // swift中switch语句的参数可以是字符串 // swift中的switch的case中没有break let flag = "abc" switch flag { case "abc": println("abc") case "bcd": println("bcd") case "def": println("def") default: println("default") } // switch中case后面必须有可执行的语句,如果有许多结果需要执行同一个语句的话,swift支持多条件匹配 var gread = 90 / 10 switch gread { case 10, 9: println("优秀") case 8, 7: println("良好") case 6: println("及格") default: println("不及格") } // switch中的范围匹配 var score = 95 switch score { case 90...100: println("优秀") case 89...60: println("良好") default: println("不及格") } // switch匹配元组数据 // 判断point是否在一个X轴为-2...2,Y轴为-2...2的矩形框内 let point = (1, 1) switch point { case (0, 0): println("这个点是坐标原点") // 这里的下划线_可以理解为忽略掉X轴的值,或者理解为任何值都行 case (_, 0): println("这个点在X轴上") case (0, _): println("这个点在Y轴上") case (-2...2, -2...2): println("这个点在一个X轴为-2...2,Y轴为-2...2的矩形框内") default: println("这个点在矩形之外") } // case的数值绑定 let point1 = (10, 0) switch point1 { case (let x, 0): println("点位于X轴上,X值为\(x)") case (0, let y): println("点位于Y轴上,Y值为\(y)") // 这里的写法相当于case (let x, let y) case let (x, y): println("X值为\(x),Y值为\(y)") } // switch中的case可以使用where来增加判断条件 let point2 = (10, -10) switch point2 { case let (x, y) where x == y: println("单调递增") case let (x, y) where x == -y: println("单调递减") default: println("不在这两条线上") } // fallthrough // 当执行完前case后,会接着执行fallthrough后面的case或者default语句 // fallthrough后面的case语句中的判断条件不能定义变量 let num = 20 var str = "\(num)是个" switch num { case 0...50: str += "0~50之间的" fallthrough default: str += "整数" } // 3、标签 out: for _ in 1...2 { for _ in 1...3 { println("start") // 这里的break是跳出当前循环 // break // 这里的break是跳出父循环,out就是标签 break out } println("==========") }
标签:
原文地址:http://my.oschina.net/are1OfBlog/blog/417098