Swift - Fallthrough 语句

  • 简述

    Swift 4 中的 switch 语句在第一个匹配的 case 完成后立即完成其执行,而不是像在 C 和 C++ 编程语言中那样落入后续 case 的底部。
    C 和 C++ 中 switch 语句的通用语法如下:
    
    switch(expression){
       case constant-expression :
          statement(s);
          break; /* optional */
       case constant-expression :
          statement(s);
          break; /* optional */
       /* you can have any number of case statements */
       default : /* Optional */
          statement(s);
    }
    
    这里我们需要使用一个 break 语句来自 case 语句,否则执行控制将通过匹配 case 语句下方可用的后续 case 语句。
  • 句法

    Swift 4 中 switch 语句的通用语法如下:
    
    switch expression {
       case expression1 :
          statement(s)
          fallthrough /* optional */
       case expression2, expression3 :
          statement(s)
          fallthrough /* optional */
       default : /* Optional */
          statement(s);
    }
    
    如果我们不使用 fallthrough 语句,那么程序就会从 switch执行匹配的 case 语句后的语句。我们将通过以下两个示例来说明其功能。
  • 示例 1

    下面的例子展示了如何在 Swift 4 编程中使用 switch 语句 without fallthrough
    
    var index = 10
    switch index {
       case 100 :
          print( "Value of index is 100")
       case 10,15 :
          print( "Value of index is either 10 or 15")
       case 5 :
          print( "Value of index is 5")
       default :
          print( "default case")
    }
    
    当上面的代码被编译和执行时,它会产生以下结果 -
    
    Value of index is either 10 or 15
    
  • 示例 2

    下面的例子展示了如何在 Swift 4 编程中使用 switch 语句 with fallthrough
    
    var index = 10
    switch index {
       case 100 :
          print( "Value of index is 100")
          fallthrough
       case 10,15 :
          print( "Value of index is either 10 or 15")
          fallthrough
       case 5 :
          print( "Value of index is 5")
       default :
          print( "default case")
    }
    
    当上面的代码被编译和执行时,它会产生以下结果 -
    
    Value of index is either 10 or 15
    Value of index is 5