Swift 运算符、循环、流程控制 for-in, while, if-else, switch-case, guard-else
1. 运算符:三目,空合并,区间运算符
// 元组比较大小。需要元素个数一致,对应的位置的元素类型相同,每一个元素都必须支持比较运算操作。// 从第一个元素开始比较,如果没有比较出结果,那么继续依次比较,直到比出结果为止。var a =(1,2,"3")var b =(1,2,"4")var c = a < b // true// 条件判断if a > b {print("a > b")}else{print("a < b")}// 三目运算,同 javaprint(a > b ?"a > b":"a < b")// a < bvar str:String?="text"var result:String= str !=nil? str!:""// 空合并运算符,如果 str 为 nil,则赋值空串,同 kotlin 的 Elvis 运算符 ?:
result = str ??""// 区间运算符,[1, 5],范围是 >=1, <=5,类似于 Kotlin 的区间 1..5var rang1 =1...5// 区间运算符,[1, 5),范围是 >=1, <5var rang2 =1..<5// 判断是否在某个区间范围内print(rang1 ~=2)// true
2. 循环:for-in, while, repeat-while
// 区间运算符用于循环for index in rang1 {print(index)}// 中断循环 breakfor index in0...2{if index ==1{break}print(index)// 0}// 跳过当前循环 continuefor index in0...2{if index ==1{continue}print(index)// 0 2}// 中断外层循环 break,类似于 Kotlin 的限定符OutterLabel:for outterIndex in0...2{for index in0...1{if outterIndex ==1{breakOutterLabel}print(index)// 0 1}}// while 循环var i =0while i <3{print(i)// 0, 1, 2
i +=1}// 即 do-while,先执行一次循环,再判断条件var k =0repeat{print(k)// 0, 1, 2
k +=1}while k <3
3. 流程控制:if-else, switch-case
// 流程控制 if-elselet number =18if number <15{print("number < 15")}elseif number >=16&& number <=20{print("number >= 16 && number <= 20")}else{print("number > 20")}// 流程控制 switch-casevar caseStr ="a"switch caseStr {case"a":print("value is a")case"b":print("value is b")default:print("default value")}// switch 子句多条件匹配switch caseStr {case"a","b","c":print("match success")default:print("default value")}// switch 子句区间范围匹配let age =18switch age {case16..<18:print("match age 16...18")case18...20:print("match age 18..<20")default:print("default value")}// switch 元组匹配let intTuple =(1,2)switch intTuple {case(1,2):print("match success 1, 2")fallthrough// 继续执行后续 case 匹配,不跳出 switchcase(2,2):print("match success 2, 2")fallthroughcase(_,2):// 选择性匹配,第一个匿名不关注,只有第二个能匹配,就算匹配成功print("match success _,2")fallthroughcase(0...2,0...2):// 匹配元组元素的范围print("match range success")case(let a,1):print("捕获元素: \(a)")caselet(a, b)where a < b:// 同 (let a, let b),增加 where 字句判断print("捕获元组: \(a),\(b)")fallthroughdefault:print("default")}
4. guard-else 守护判断
// 调用 methodmethod()funcmethod(){// 守护语句,当 guard 后面的条件成立时,才继续执行,替换之前的 if-returnguard number >20else{return}print("continue execute")}
Swift 运算符、循环、流程控制 for-in, while, if-else, switch-case, guard-else
Swift 运算符、循环、流程控制 for-in, while, if-else, switch-case, guard-else1. 运算符:三目,空合并,区间运算符// 元组比较大小。需要元素个数一致,对应的位置的元素类型相同,每一个元素都必须支持比较运算操作。// 从第一个元素开始比较,如果没有比较出结果,那么继续依次比较,直到比出结果为止。var a = (1, 2, "3")var b = (1, 2, "4")var c = a < b // true// 条件判断i