Swift-条件语句

来源:互联网 发布:淘宝天弘基金怎么赎回 编辑:程序博客网 时间:2024/05/21 22:59
//: Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"//For 循环/* Swift 提供两种for循环形式以来按照指定的次数多次执行一系列语句:  for-in循环对一个集合里面的每个元素执行一系列语句。 for循环,用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。  */for index in 1...5 {    print("\(index) times 5 is \(index * 5)")}/*  下面是一般情况下这种循环方式的格式:  for initialization; condition; increment { statements } 和 C 语言中一样,分号将循环的定义分为 3 个部分,不同的是,Swift 不需要使用圆括号将“initialization; condition; increment”包括起来。  这个循环执行流程如下:  循环首次启动时,初始化表达式被调用一次,用来初始化循环所需的所有常量和变量。 条件表达式被调用,如果表达式调用结果为false,循环结束,继续执行for循环关闭大括号 (})之后的代码。如果表达式调用结果为true,则会执行大括号内部的代码。 执行所有语句之后,执行递增表达式。通常会增加或减少计数器的值,或者根据语句输出来修改某一个初始化的变量。当递增表达式运行完成后,重复执行第 2 步,条件表达式会再次执行。 在初始化表达式中声明的常量和变量(比如var index = 0)只在for循环的生命周期里有效。如果想在循环结束后访问index的值,你必须要在循环生命周期开始前声明index。 */var index: Intfor index = 0; index < 3; index += 1 {    print("index is \(index)")}/*  While 循环  while循环运行一系列语句直到条件变成false。这类循环适合使用在第一次迭代前迭代次数未知的情况下。Swift 提供两种while循环形式:  while循环,每次在循环开始时计算条件是否符合; repeat-while循环,每次在循环结束时计算条件是否符合。  While  while循环从计算单一条件开始。如果条件为true,会重复运行一系列语句,直到条件变为false。  下面是一般情况下 while 循环格式:  while condition { statements } */let finalSquare = 25var board = [Int](count: finalSquare + 1, repeatedValue: 0)board[03] = +08; board[06] = +11; board[09] = +09; board[10] = +02board[14] = -10; board[19] = -11; board[22] = -02; board[24] = -08var square = 0var diceRoll = 0while square < finalSquare {    // 掷骰子    if ++diceRoll == 7 { diceRoll = 1 }    // 根据点数移动    square += diceRoll    if square < board.count {        // 如果玩家还在棋盘上,顺着梯子爬上去或者顺着蛇滑下去        square += board[square]    }}print("Game over!")/**///控制转移语句/* Continue  continue语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。就好像在说“本次循环迭代我已经执行完了”,但是并不会离开整个循环体。  注意: 在一个带有条件和递增的for循环体中,调用continue语句后,迭代增量仍然会被计算求值。循环体继续像往常一样工作,仅仅只是循环体中的执行代码会被跳过。  */var puzzleInput = "great minds think alike"//var puzzleOutput = ""for character in puzzleInput.characters {    switch character {    case "a", "e", "i", "o", "u", " ":        continue    default:        puzzleInput.append(character) ;    }}print(puzzleInput) ;/* 贯穿(Fallthrough)  Swift 中的switch不会从上一个 case 分支落入到下一个 case 分支中。相反,只要第一个匹配到的 case 分支完成了它需要执行的语句,整个switch代码块完成了它的执行。相比之下,C 语言要求你显示的插入break语句到每个switch分支的末尾来阻止自动落入到下一个 case 分支中。Swift 的这种避免默认落入到下一个分支中的特性意味着它的switch 功能要比 C 语言的更加清晰和可预测,可以避免无意识地执行多个 case 分支从而引发的错误。  如果你确实需要 C 风格的贯穿的特性,你可以在每个需要该特性的 case 分支中使用fallthrough关键字。下面的例子使用fallthrough来创建一个数字的描述语句。 */let integerToDescribe = 5var description = "The number \(integerToDescribe) is"switch integerToDescribe {case 2, 3, 5, 7, 11, 13, 17, 19:    description += " a prime number, and also"    fallthroughdefault:    description += " an integer."}print(description)if #available(iOS 9, OSX 10.10, *) {    // 在 iOS 使用 iOS 9 APIs , 并且在 OS X 使用 OS X v10.10 APIs} else {    // 回滚至早前 iOS and OS X 的API}

0 0
原创粉丝点击