SwiftNote-循环控制

162 阅读1分钟

for 循环

  • 一个范围的数字

    for i in 0...3 {
        print(i)
    }
    
  • 字符串的字符

    let names = ["张三", "李四", "王五", "赵六"]
    for name in names {
        print(name)
    }
    
  • 数组中的元素

    for c in "hello,world!" {
        print(c)
    //  print(type(of: c))  Character
    }
    
  • 遍历字典 当字典遍历时,每一个元素返回一个(key,value)元组,可以在 for-in 循环体中使用显示命名来分解元组成员。

    let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
    for (animalName, legCount) in numberOfLegs {
        print("\(animalName) has \(legCount) legs.")
    }
    
    for t in numberOfLegs {
        print("\(t.0) has \(t.1) legs.")
    }
    // 控制台输出结果:    
    // ant has 6 legs.
    // spider has 8 legs.
    // cat has 4 legs.
    
  • 如果不需要序列的每一个值,则可以使用 下划线_来取代遍历名以忽略值

    let base = 3
    let power = 5
    var answer = 1
    for _ in 1...power {
        answer *= base
    }
    print("\(base) to the power of \(power) is \(answer)")
    // 控制台输出结果:  
    // 3 to the power of 5 is 243
    
  • 分段区间遍历

    • 使用 stride(from: to: by) 函数来跳过不想要的区间(开区间)。
    • 闭区间使用 stride(from: through: by) 即可。
    let interval = 2
    // 开区间
    for tickMark in stride(from: 0, to: 10, by: interval) {
        print(tickMark)
    }
    // 控制台输出结果:
    // 0
    // 2
    // 4
    // 6
    // 8
    
    // 闭区间
    for tickMark in stride(from: 0, through: 10, by: interval) {
        print(tickMark)
    }
    // 控制台输出结果:
    // 0
    // 2
    // 4
    // 6
    // 8
    // 10
    

while 循环

  • repeat-while 循环(类似于 OC 中的 do-while)

    var count = 0
    repeat {
        print(count)
        count += 1
    } while count < 5
    // 0
    // 1
    // 2
    // 3
    // 4
    
    while count < 5 {
        print(count)
        count += 1
    }
    // 二者打印效果相同