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

    Break

      break语句会立刻结束整个流程控制的执行.break语句可以在switch语句或者循环语句中帮助你提前结束循环或者switch的执行.

    Break in a Loop Statement  (循环语句中的break)

      当在循环语句中使用break,会立刻结束循环的执行,并且跳转到循环体之后的第一行代码.循环不会再遍历执行了.

    Break in a Switch Statement (switch语句的break)

      当在switch语句中使用break,break会立刻结速switch,并跳转到switch语句大括号(})后的第一行代码.

      这种方式可以用来忽略一个或者多个case.由于switch语句执行的时候,不可以有空的case,因此有时候需要忽略一个case.你可以将break语句作为case的整个执行体来忽略这个部   分;一旦switch匹配到这个case的时候,break语句会立刻结束switch的执行.

      注意点:

      一个switch case 如果只有注释,会报编译器错误.注释不是语句,也不会让case被跳过,如果要忽略这个case就要break语句.

      请看下面代码例子:

        let numberSymbol: Character = "三"  // Simplified Chinese for the number 3

        var possibleIntegerValue: Int?

        switch numberSymbol {

        case "1", "١", "一", "๑":”

        possibleIntegerValue = 1

               case "2", "٢", "二", "๒":

          possibleIntegerValue = 2

          case "3", "٣", "三", "๓":

           possibleIntegerValue = 3

          case "4", "٤", "四", "๔":

          possibleIntegerValue = 4

        default:

            break

        }

        if let integerValue = possibleIntegerValue {

            println("The integer value of (numberSymbol) is (integerValue).")

        } else {

            println("An integer value could not be found for (numberSymbol).")

        }

        // prints "The integer value of 三 is 3."

      这个代码中,检查numberSymbol,是否是Latin, Arabic, Chinese, 或者 Thai 四种语言中的1至4的中的一个数字.如果匹配到了,switch的case语句就会设置一个Int?类型的可选变量  possibleIntegerValue来处理对应的值.

      在switch语句执行完之后,代码中使用可选绑定来确定这个值是否找到.变量possibleIntegerValue有一个隐式初始化的nil值,因此如果可选绑定能够判定成功,possibleIntegerValue变  量在switch中的四个case必须设置一个实际的值.

      上面代码例子中,罗列出所有可能的字符是不实际的.因此,deafult的case语句处理所有不匹配的情况,default的case没有执行任何操作,只是使用了break语句来结束switch执行.

    Fallthrough (降落)

      在Swift中,switch语句里,不会从一个case执行后再处理后面的一个case,一直到底部case.相反地,整个switch语句在第一个匹配的case完成之后就会结束执行,在C语言的switch中,  通过给每个case中插入break来防止这种掉落执行.Swift避免这种默认的降落执行是为了更加准确和可预见性,这样可以避免错误的执行多个case.

      如果你真的需要像C语言那也顺序降落的执行case,你可以使用关键字fallthrough.

      下面的代码例子使用关键字fallthrough来创建一个数字的文本描述:

        let integerToDescribe = 5

        var description = "The number (integerToDescribe) is"

        switch integerToDescribe {

        case 2, 3, 5, 7, 11, 13, 17, 19:

             description += " a prime number, and also"  

            fallthrough

        default:

            description += " an integer."

        }

        println(description)

        // prints "The number 5 is a prime number, and also an integer.”

      注意点:

      关键字fallthrough不会检测switch的case条件,它仅降落的执行.像C语言中的那样,从一个case代码执行完后,直接执行下一个case代码块.

  • 相关阅读:
    学习 Message(12): 整合鼠标 Down 消息
    合并两个 Wav 文件流的函数 回复 "刘文强" 的问题
    “博客无双”第一期拍卖活动获奖名单公告
    [获奖公告]“博客无双”12月27日第一期获奖名单
    “博客无双”活动拍卖时间调整公告
    致歉
    祝大家新年快乐
    博客园电子期刊2010年12月刊发布啦
    “博客无双”拍卖活动将于14:00开始
    2011年4月微软最有价值专家(MVP)申请截止时间:2011年1月13日
  • 原文地址:https://www.cnblogs.com/caios/p/3834457.html
Copyright © 2011-2022 走看看