Swift学习记录(二)

该记录采用的是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到9
    • 0...10 表示从0到10
    • 注意之间不能出现空格
    • 如果不关心循环本身的索引,可以使用 _ 忽略

五、switch

Swift中switch的基本用法和OC相类似,

switch(需要匹配的值) case 匹配的值: 需要执行的语句 break;

  • 不同之处有
    • OC判断条件只能是整形。Swift除了整形还可以是对象类型
    • OC可以穿透。当满足条件时,OC会实现接下去所有的代码,直到遇到break为止。Swift则不会穿透,只会执行满足条件的代码块(即Swift可以不写break,OC不可以不写)
    • OC可以不写default,且位置可以随意摆放。Swift一定要写default,且位置只能在最后
    • OCcase中定义变量需要加大括号, 否则作用域混乱。Swift不用加大括号
    • OCcase只能判断一个条件。Swiftcase可以判断多个条件

此外在Swiftcase的可以配合区间和元组

// 区间
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

你可能感兴趣的:(Swift学习)