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语句,那么程序在执行完匹配的case语句后就会跳出switch语句。我们将通过以下两个示例来清楚地说明其功能。

实施例1

以下示例展示了如何在 Swift 4 编程中使用 switch 语句而不会失败-

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 语句进行失败-

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
swift_loops.htm