zoukankan      html  css  js  c++  java
  • Welcome to Swift (苹果官方Swift文档初译与注解二十六)---181~188页(第四章-- 流程控制)

    Do-While 

      while循环的另一个版本是do-while循环,它在判断条件之前,先执行一遍循环体,然后再次执行循环体,直到条件成为false.

      do-while循环的通过格式:

        do {

            statements

        } while condition

      我们再用蛇和梯子的例子,使用do-while循环代替while循环.其中 finalSquare, board, square, 和 diceRoll 的初始化与while循环是一样的:

        let finalSquare = 25

        var board = Int[](count: finalSquare + 1, repeatedValue: 0)

        board[03] = +08; board[06] = +11; board[09] = +09; board[10] = +02

        board[14] = -10; board[19] = -11; board[22] = -02; board[24] = -08

        var square = 0

        var diceRoll = 0

      游戏的这个版本中,循环的第一步是检查梯子或蛇,方格中没有梯子就会将玩家直接带到25格子,这样玩家不可能通过爬梯子来获胜.出于安全,要在循环的最开始检查蛇或梯子.

      游戏开始的时候,玩家总是在方格0.board[0] 总是等于0,这没有什么影响:

        do {

            // move up or down for a snake or ladder

            square += board[square]

            // roll the dice

            if ++diceRoll == 7 { diceRoll = 1 }

            // move by the rolled amount

            square += diceRoll

        } while square < finalSquare

        println("Game over!")

      在检查完蛇和梯子之后,开始投掷色子,然后玩家根据投掷的色子移动相应的格子,本次循环完成.

      循环条件(while square < finalSquare)与之前的是一样的,但这次是在第一次循环完成之后才计算条件.do-while循环比while更适合这个游戏例子.在上面的do-while循环里,square    += board[square]总是在条件确认之后就立刻执行,这样就去除了检查数组边界检查.

    Conditional Statements (条件语句)

      代码中经常要根据某种条件来执行不同片段的代码.当错误发生的时候,你可能想运行扩展一段代码,或者当一个值太大或者太小的时候,你想像是一个信息,出于这样的情况,你需要处  理条件代码.

      Swift提供了两种方式来在代码中增加条件分支,它们是if语句和switch语句.通常的,使用if语句来计算简单的条件以供少量的几个可能情况.switch语句比较适合复杂的条件和更多的可  能分支,它的匹配模式在这些情况下能够是代码更加准确的根据分支执行.

    If

      最简单的例子,if语句只有一个if条件.它只中条件是true的时候才会执行一组语句:

        var temperatureInFahrenheit = 30

        if temperatureInFahrenheit <= 32 {

            println("It's very cold. Consider wearing a scarf.")

        }

        // prints "It's very cold. Consider wearing a scarf.

      这个例子检查天气温度是否小于或者等于32度(华氏温度,32是水的冰点温度),如果是,将会输出一个消息,否则,没有消息输出,代码将继续执行if语句{}之后的部分.

      if语句提供了选择,这被称为else分句,当if条件是false的时候,else的语句被执行:

        temperatureInFahrenheit = 40

        if temperatureInFahrenheit <= 32 {

            println("It's very cold. Consider wearing a scarf.")

        } else {

            println("It's not that cold. Wear a t-shirt.")

        }

        // prints "It's not that cold. Wear a t-shirt.

      上面两个分支总会有一个被执行.因为温度增加到40华氏度,它不再那么冷得要穿一个披肩,因此,else分支被触发.

      可以多个if语句相互链接在一起来处理额外的分支:

        temperatureInFahrenheit = 90

        if temperatureInFahrenheit <= 32 {

            println("It's very cold. Consider wearing a scarf.")

        } else if temperatureInFahrenheit >= 86 {

            println("It's really warm. Don't forget to wear sunscreen.")

        } else {

            println("It's not that cold. Wear a t-shirt.")

        }

        // prints "It's really warm. Don't forget to wear sunscreen.”

      这里,添加了一个if语句来响应指定的一个温暖温度.最后的else语句保留下来,用来相应当温度既不特别温暖也不特别寒冷的情况.

      最后的else是可选的:

        temperatureInFahrenheit = 72

        if temperatureInFahrenheit <= 32 {

            println("It's very cold. Consider wearing a scarf.")

        } else if temperatureInFahrenheit >= 86 {

            println("It's really warm. Don't forget to wear sunscreen.")

        }

      这个例子里,温度既不太冷也不太温暖,不会触发if或者else if条件,因此没有信息输出.

  • 相关阅读:
    在 ASP.NET 中实现会话状态的基础
    STL 备忘录
    ASP.NET开发环境的详细配置
    COFF 文件的格式
    mbstowcs and MultiByteToWideChar
    苦心人天不负
    CString GetBuffer() and ReleaseBuffer()
    c语言的函数指针
    如何架设流媒体服务器(2)
    再谈从vc6迁移到vs2005
  • 原文地址:https://www.cnblogs.com/caios/p/3825066.html
Copyright © 2011-2022 走看看