1 if-else
let age = 31
if age > 30 {
print("age > 30");
}else if age>20 {
print("age>20");
}
- if 后面的条件可以省略小括号
- 条件后面的大括号不可以省略
2 while
var num = 10
while num > 0 {
num -= 1
print("age:\(num)")
}//打印内容为: 9 8 7 6 5 4 3 2 1 0
3 For - 区间运算符用在数组上
区间类型:
- 闭区间运算符:a...b, a<= 取值 <=b
- 半开区间运算符:a..<b, a<= 取值 <b
- 单侧区间:让区间朝一个方向尽可能的远 2...
- 字符、字符串也能使用区间运算符,但默认不能使用在for-in中
- 带间隔的区间值
let range1: ClosedRange<Int> = 1...3
let range2: Range = 1..<3
let range3: PartialRangeThrough<Int> = ...5
let name = ["Alex","Brom","Crol","Drop"]
for i in 0...3{
print("\(name[i])")
}//Alex Brom Crol Drop
for i in range2{
print(i)
}// 1 2
for i in name[1...]{
print(i)
}//Brom Crol Drop
let strRange = "aa"..."zz"// aa ab ac ...... yz zz
let bl = strRange.contains("cc")
print("bl--- \(bl)") //bl--- true
let hours = 13
let interval = 2
for i in stride(from: 2, to: hours, by: interval) {
print("i = \(i)")
}//i = 2 i = 4 i = 6 i = 8 i = 10 i = 12
4 switch
使用时注意事项:
- case、default后面不能用大括号{}
- 默认可以不写break,并不会贯串后面的条件
- 如果想实现贯串,则使用fallthrough即可
- switch 必须保证能处理所有情况
- case 、default后面至少要有一条语句,如果不想做任何事,加个break即可
- 如果能保证case已处理所有情况,也可以不必使用default
- switch也支持Character String类型
- switch也支持区间匹配 、 元祖匹配
var num = 2
switch num {
case 1:
print("num is 1")
fallthrough
case 2:
print("num is 2")
case 3:
print("num is 3")
default:
break
}
/*num is 1
num is 2*/
enum Answer {
case right, wrong
}
let answer:Answer = Answer.right
switch answer {
case Answer.right:
print("answer is right")
fallthrough
case .wrong:
print("answer is wrong")
}
/* 这里case已经包含枚举里所有类型,所以可以不用使用default。
并且已经确认answer 为 Answer类型,所以也可以直接 .wrong*/
var str = "Jack"
switch str {
case "Jack":
fallthrough
case "Uzi":
print("A Good ADC")
default:
break
}/* 这里使用的fallthrough类似于OC中的
case 1:
case 2:
*/
//值绑定
let point = (2,0)
switch point {
case (let x , 0):
print("x = \(x)")
case (0 , let y):
print("y = \(y)")
default:
break
}
5 where
let point = (2,2)
switch point {
case let( x , y) where x == y :
print("x == y")
case let( x , y) where x == -y :
print("x == -y")
case let( x , y) :
print("(\(x) , \(y)) just a point")
} //x == y
var wNum = [1, -2, 5 , -7 ]
for obj in wNum where obj>0{
print(obj);
}// 1 5
网友评论