本文对swift的流程控制相关内容以及函数要点进行了归纳总结,适合初学者。
var num = 10
while num > 0 {
print("num is \(num)")
num -= 1
} // 打印num 5次
var num = -1
repeat {
print("num is \(num)")
}while num > 0 // 打印了1次num
let names = ["MM", "YY", "HH", "HM"]
for i in 0...3 {
print(names[i])
} // MM YY HH HM(一行一个名字)
for var i in 0...3 {
i += 10
print(i)
} // 10 11 12 13
let names = ["MM", "YY", "HH", "HM"]
for name in names[0...3] {
print(names[item])
} MM YY HH HM(一行一个名字)
var num = 1
switch num {
case 1:
print("1")
case 2:
print("2")
default:
print("other")
} // 1
var num = 1
switch num {
case 1:
print("1")
fallthrough
case 2:
print("2")
default:
print("other")
} // 1 2
let num = 21
switch num {
case 0:
print("0")
case 1..<10:
print("[1,10)")
case 10..<21:
print("[10,21)")
case 21..<30:
print("[21,30)")
default:
print("other")
} // [21,30)
let point = (1, 1)
switch point {
case (0, 0):
print("the origin")
case (_, 0):
print("on the x-axis")
case (0, _):
print("on the y-axis")
case (-2...2, -2...2):
print("inside the box")
default:
print("outside of the box")
} // inside the box
let point = (2, 1)
switch point {
case (let x, 1):
print("x = \(x)")
case (1, let x):
print("x = \(x)")
default:
print("other")
} // x = 2
where用于添加约束条件,我们来看下面这个例子:
let point = (1, 1)
switch point {
case let (x, y) where x == y:
print("x == y")
case let (x, y) where x == -y:
print("x == -y")
default:
print("other")
} // x == y
本例中,将在for循环中添加where语句,实现求正数和
var numbers = [-3, -2, -1, 0, 1, 2, 3]
var sum = 0
for number in numbers where number > 0{
sum += number
}
print(sum) // 6
func pi() -> Double{
return 3.1415926
}
print(pi()) // 3.1415926
func sum(n1: Int, n2: Int) -> Int{
return n1 + n2
}
print(sum(n1: 1, n2: 5)) // 6
注意:形参默认let, 只能为let
func say1() -> Void{
print("你好1")
}
func say2() -> (){
print("你好2")
}
func say3(){
print("你好3")
}
func sum(n1: Int, n2: Int) -> Int{
n1 + n2
}
print(sum(n1: 1, n2: 5)) // 6
这里用一个例子来说明,下面的程序用一个函数实现了求和、平均数的功能:
func caculate(n1: Int, n2: Int) -> (sum: Int, average: Double){
let sum = n1 + n2
let average = Double(sum) / 2
return(sum, average)
}
let result = caculate(n1: 10, n2: 5)
print("sum = \(result.sum)") // sum = 15
print("average = \(result.average)") // average = 7.5
func goToStudy(at time: String){
print("This time is \(time), we should go to study now!")
}
goToStudy(at: "06:00") // This time is 06:00, we should go to study now!
func caculate(_ n1: Int, _ n2: Int) -> (sum: Int, average: Double){
let sum = n1 + n2
let average = Double(sum) / 2
return(sum, average)
}
let result = caculate(10, 5)
print("sum = \(result.sum)") // sum = 15
print("average = \(result.average)") // average = 7.5
显式在形参列表中添加默认值即可:
func say(girl: String = "Lingling", boy: String = "xiaoming"){
print("\(girl) and \(boy) is a good friend!")
}
say(girl: "Miao") // Miao and xiaoming is a good friend!
say() // Lingling and xiaoming is a good friend!
say(boy: "Huang") // Lingling and Huang is a good friend!
var num = 0
func test(_ num: inout Int){
num = 10
}
test(&num)
print(num) // 10
func sum(_ numbers: Int...) -> Int{
var sum = 0
for number in numbers{
sum += number
}
return sum
}
sum(1, 2, 3, 4, 5) // 15
函数名相同但是:
内联优化其实就是函数展开成代码,通过优化减少资源的占用。但是如下情况不会被优化:
func test(){
print("123")
}
test() // 123
// 由于方法体只有一个打印语句,编译器便不再调用test(),而是通过内联优化直接print
print("123") // 123
— end
本文到此就告一段落了,后续还会继续更新swift与swiftUI相关知识,收藏专栏不迷路~