swift-控制流程01-for循环

来源:互联网 发布:linux修改网卡名称 编辑:程序博客网 时间:2024/05/17 22:21


import UIKit


class ViewController: UIViewController {

  

  override func viewDidLoad() {

    super.viewDidLoad()

    

    /**

    For 循环用于多次执行一组语句,Swift提供了两种 For 循环:

    For-in 循环用于执行一组语句中的每一项,

    包括范围(range)、序列(sequence)、集合(collection)和进展(progression)

    For 条件递增循环用于执行满足一个特定条件时的一组语句,通常为每次循环结束时增加计数值一次

  

    你可以使用for-in循环去迭代集合项,例如数字范围,数组项或者字符串中的字符。

    下面的例子打印了一些5的倍数表

    */

    for index in1...5 {

      

      print("\(index)次执行循环")

      

    }

    

    /**

     被迭代的集合是一个包含15的闭区间值,正如在用闭区间操作符(…)

     索引值为范围中的第一个值(1),同时循环里的语句将被执行。

     在这种情况下,循环里只包含一条语句,它用于第几次执行循环。

     在这条语句被执行后,索引值将被更新为范围中的第二个值(2),同时print函数再次被调用,

     这个过程将持续直到范围中的末尾。

     

     在上述的例子中,索引是一个常数,它在循环每次迭代开始时被自动设定。

     正如,它使用前可以不用声明,不需要用let关键字来声明,通过在循环中包含来做隐式声明。

     索引常量只在循环体内有效,

     如果你想在循环体之后检查索引值,或者你想让它像变量而不是常量那样工作时,

     你必须在循环体之前手动声明。

     */

     

     /**

     如果你不需要范围中的每一个值,你可以通过在变量名处使用下划线来忽略索引值:

     */

    let base = 3

    let power = 10

    var answer = 1

    for _ in 1...power {

      

      print("answer==\(answer) and base==\(base)")

      answer *= base

      

    }

    

    /**

     使用for-in循环来迭代数组中的项:

     */

    let fruit = ["banana","apple","melon","tomato","pich"]

    for name in fruit {

      

      print("I like to eat\(name)!")

      

    }

    

    /**

     可以通过获取关键字-值对来迭代字典中的数据,

     当迭代字典中的数据时,字典中的每一项将以(关键字-)元组作为返回值。

     你可以在for-in循环体中用显示命名常数来分解(关键字-)元组的数据以供使用,

     但是顺序不是依次的,因为字典的数据是无序的

     */

    let numberOfLegs = ["people":"2","cat":"4","spider":"8","ant":"so much"]

    

    for (object,legs) in numberOfLegs {

      

      print("\(object) has\(legs) legs")

      

    }

    

    for cha in"hello".characters {

      

      print(cha)

      

    }

    

    for var index =0 ; index < 3 ;++index {

      

      print("first for index is\(index)")

      

    }

    /**

     C语言一样,分号将 For 循环分为 3个部分,

     不同的是,Swift不需用圆括号将他们包括起来。

     执行流程如下:

     1.循环启动时,初始化表达式(initialization expression)被调用一次,初始化循环所需的常量和变量。

     2.条件表达式(condition expression)被调用,如果表达式的结果为false,循环结束,继续执行 for 循环后的代码;如果表达式的结果为true,则执行 for循环大括号内部的代码(statements)。

     3.执行所有语句(statements)之后,执行递增表达式(increment):通常会增加或减少计数器的值,或者根据语句(statements)修改某一个变量。当递增表达式(increment)执行完成后,重复执行第 2 步。如此循环下去

     

     在初始化表达式中声明的常量和变量(比如 var index = 0)只在 for循环的生命周期里有效。

     如果想在循环结束后继续使用 index,需要要在循环开始之前声明 index

     */

    

    var index = 0

    for ;index<3;++index {

      

      print("second for index is\(index)")

      

    }

    print("index out of for is\(index)")

    

    /**

    index 在循环结束后最终的值是 3而不是 2

    因为最后一次递增表达式 ++index被调用将 index 设置为 3,导致 index < 3false,终止循环

    */

    

  }

}


0 0
原创粉丝点击