Swift - 控制流及控制结构说明(if,switch,for,while)

注:代码已升级至Swift4

if 语句

1
2
3
4
5
if count >= 3 {
print("yes")
} else {
print("no")
}

switch 语句

(1)Swift中不需要在case块中显示地使用break跳出switch。如果想要实现C风格的落入特性,可以给需要的case分支插入fallthrough语句

1
2
3
4
5
6
7
8
9
10
let fruit = "apple"
switch fruit {
case "apple":
print("good")
fallthrough
case "banana","orange":
print("great")
default:
print("bad")
}

(2)case分支还可以进行区间匹配

1
2
3
4
5
6
7
8
9
let age = 5
switch age {
case 0...11:
print("正太")
case 12...30:
print("少年")
default:
print("大叔")
}

(3)case分支同样支持单侧区间匹配

1
2
3
4
5
6
7
8
9
10
11
let num = -5
switch num {
case ..<0:
print("负数")
case 0:
print("0")
case 0...:
print("正数")
default:
print("未知")
}

(4)使用元组匹配(判断属于哪个象限)

1
2
3
4
5
6
7
8
9
10
11
12
13
let point = (2,2)
switch point {
case (0,0):
print("坐标在原点")
case (_,0):
print("坐标在x轴上")
case (0,_):
print("坐标在y轴上")
case (-3...3, -3...3):
print("坐标在长宽为6的正方形内")
default:
print("在什么地方")
}

(5)case中还可以使用where关键字来做额外的判断条件

1
2
3
4
5
6
7
8
9
var height = 1.72
switch height{
case 1...3 where height == 1.72:
print("case 1")
case 1...3 where height == 2:
print("case 2")
default:
print("default")
}

for 循环语句

(1)for条件递增循环

注意:这种C语言风格的for循环语法已在Swift3中被废除,建议使用下面的for-in,for-each写法

1
2
3
4
//已弃用
//for var i=1; i<100; i++ {
// print("\(i)")
//}

(2)for-in循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for i in 1..<100 {
print("\(i)")
}

//遍历数组元素
let numbers = [1,2,4,7]
for num in numbers{
print("\(num)")
}

//遍历字典
let nameOfAge = ["lily":18, "Candy":24]
for (aName, iAge) in nameOfAge {
print("\(aName) is \(iAge)")
}

//遍历字符串的字符
for chare in "hangge".characters {
print(chare)
}

(3)for-each循环

1
2
3
(1...10).forEach {
print($0)
}

while 循环语句

1
2
3
4
5
6
7
while i<100 {
i += 1
}

repeat {
i += 1
} while i<100

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :