该记录采用的是Swift 3.0版本,Xcode8.2.1,配合某机构教学视频。
四、for循环
// 一般写法
for var i = 0; i < 10; i++ {
print(i)
}
// 遍历 0 ~ 9
for i in 0..<10 {
print(i)
}
// 遍历 0 ~ 10
for i in 0...10 {
print(i)
}
// 表示不关心索引值
for _ in 0...10 {
print("hello")
}
- 小结
Swift
中使用in
关键字标示循环的范围0..<10
表示从0到90...10
表示从0到10- 注意之间不能出现空格
- 如果不关心循环本身的索引,可以使用 _ 忽略
五、switch
Swift
中switch的基本用法和OC
相类似,
switch(需要匹配的值) case 匹配的值: 需要执行的语句 break;
- 不同之处有
OC
判断条件只能是整形。Swift除了整形还可以是对象类型OC
可以穿透。当满足条件时,OC
会实现接下去所有的代码,直到遇到break
为止。Swift
则不会穿透,只会执行满足条件的代码块(即Swift
可以不写break
,OC
不可以不写)OC
可以不写default
,且位置可以随意摆放。Swift
一定要写default
,且位置只能在最后OC
在case
中定义变量需要加大括号, 否则作用域混乱。Swift
不用加大括号OC
中case
只能判断一个条件。Swift
中case
可以判断多个条件
此外在Swift
中case
的可以配合区间和元组
// 区间
var num = 10;
switch num{
case 1...9:
print("个位数")
case 10...99:
print("十位数")
default:
print("其它数")
}
// 元组
var point = (10, 15)
switch point{
case (0, 0):
print("坐标在原点")
case (1...10, 10...20): // 可以在元祖中再加上区间
print("坐标的X和Y在1~10之间")
case (_, 0): // X可以是任意数
print("坐标的X在X轴上")
default:
print("Other")
}
值绑定
var point = (1, 10)
switch point{
case (var x, 10): // 会将point中X的值赋值给X
print("x= \(x)")
case (var x, var y): // 会将point中XY的值赋值给XY
print("x= \(x) y= \(y)")
//case var(x, y):
// print("x= \(x) y= \(y)")
default:
print("Other")
}
根据条件绑定
var point = (100, 10)
switch point{
// 只有where后面的条件表达式为真才赋值并执行case后的语句
case var(x, y) where x > y:
print("x= \(x) y= \(y)")
default:
print("Other")
}
六、while循环
// 1.while循环
// 1> while后面的()可以省略 2>没有非0(nil)即真
var a = 10
while a > 0 {
a -= 1
print(a)
}
// 2.do while循环
// 1> 类型while循环的差别 2>do需要换成repeat
repeat {
a += 1
print(a)
} while a < 10