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
if a > b {
print("a > b")
} else {
print("a < b")
}
print(a > b ? "a > b" : "a < b")
var str: String? = "text"
var result: String = str != nil ? str! : ""
result = str ?? ""
var rang1 = 1...5
var rang2 = 1..<5
print(rang1 ~= 2)
2. 循环:for-in, while, repeat-while
for index in rang1 {
print(index)
}
for index in 0...2 {
if index == 1 {
break
}
print(index)
}
for index in 0...2 {
if index == 1 {
continue
}
print(index)
}
OutterLabel:for outterIndex in 0...2 {
for index in 0...1 {
if outterIndex == 1 {
break OutterLabel
}
print(index)
}
}
var i = 0
while i < 3 {
print(i)
i += 1
}
var k = 0
repeat {
print(k)
k += 1
} while k < 3
3. 流程控制:if-else, switch-case
let number = 18
if number < 15 {
print("number < 15")
} else if number >= 16 && number <= 20 {
print("number >= 16 && number <= 20")
} else {
print("number > 20")
}
var caseStr = "a"
switch caseStr {
case "a":
print("value is a")
case "b":
print("value is b")
default:
print("default value")
}
switch caseStr {
case "a","b","c":
print("match success")
default:
print("default value")
}
let age = 18
switch age {
case 16..<18:
print("match age 16...18")
case 18...20:
print("match age 18..<20")
default:
print("default value")
}
let intTuple = (1, 2)
switch intTuple {
case (1, 2):
print("match success 1, 2")
fallthrough
case (2, 2):
print("match success 2, 2")
fallthrough
case (_, 2):
print("match success _,2")
fallthrough
case (0...2, 0...2):
print("match range success")
case (let a, 1):
print("捕获元素: (a)")
case let(a, b) where a < b:
print("捕获元组: (a),(b)")
fallthrough
default:
print("default")
}
4. guard-else 守护判断
method()
func method() {
guard number > 20 else {
return
}
print("continue execute")
}