Swift оператор switch

Swift 条件语句Условные операторы в Swift

switchОператор switch позволяет проверить переменную на равенство нескольким значениям. В Swift, как только совпадает один case, весь switch завершается.


Синтаксис

Синтаксис оператора switch в Swift:

switch expression {
   case expression1  :
      statement(s)
      fallthrough /* 可选 */
   case expression2, expression3  :
      statement(s)
      fallthrough /* 可选 */
  
   default : /* 可选 */
      statement(s);
}

Обычно оператор fallthrough не используется в операторах switch.

Здесь нужно отметить, что если инструкция case не использует инструкциюfallthrough, то после выполнения текущей инструкции case switch завершается, и поток управления переходит на следующую строку после оператора switch.

Если используется инструкцияfallthrough, она продолжит выполнять следующие инструкции case или default, независимо от того, выполнено ли условие.

Примечание:В большинстве языков в блоке оператора switch после case обязательно должен идти break; иначе инструкции после case будут выполняться последовательно. В Swift по умолчанию продолжения не будет, и switch также завершается. Если вы хотите, чтобы инструкции после case продолжали выполняться по порядку в Swift, нужно использовать инструкцию fallthrough.

Пример 1

В следующем примере не используется оператор fallthrough:

import Cocoa

var index = 10

switch index {
   case 100  :
      print( "index 的值为 100")
   case 10,15  :
      print( "index 的值为 10 или  15")
   case 5  :
      print( "index 的值为 5")
   default :
      print( "默认 case")
}

Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:

index 的值为 10 или  15

Пример 2

В следующем примере используется оператор fallthrough:

import Cocoa

var index = 10

switch index {
   case 100  :
      print( "index 的值为 100")
      fallthrough
   case 10,15  :
      print( "index 的值为 10 или  15")
      fallthrough
   case 5  :
      print( "index 的值为 5")
   default :
      print( "默认 case")
}

Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:

index 的值为 10 или  15
index 的值为 5

Swift 条件语句Условные операторы в Swift

Другие расширения