Заявление о быстром переключении (с примерами)

В этой статье вы научитесь использовать операторы управления переключением для управления потоком выполнения вашей программы.

Оператор switch также является разновидностью оператора управления Swift egif-else, guard и т. Д., Который выполняет разные действия в зависимости от разных условий.

Прелесть оператора switch в том, что он может сравнивать значение с несколькими возможными шаблонами соответствия. Поэтому его можно использовать как замену длинным if… else… ifлесенкам при сопоставлении сложного рисунка.

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

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

 переменная / выражение переключателя (case value1: // операторы case value2: // операторы default: // операторы)

Как работает инструкция Switch в Swift?

  • Выражение переключения вычисляется один раз.
  • Он берет выражение и сравнивает его с каждым значением case в порядке (Top -> Bottom).
  • Если есть совпадение, выполняется оператор внутри case, и весь оператор switch завершает свое выполнение, как только завершается первый совпадающий case switch.
  • Если для случая нет совпадения, он переходит к следующему случаю.
  • Ключевое слово по умолчанию указывает код для запуска, если нет совпадения по регистру.

Примечание : тело каждого дела должно содержать хотя бы один исполняемый оператор.

Пример 1: Простая программа с использованием оператора Switch

 let dayOfWeek = 4 switch dayOfWeek ( case 1: print("Sunday") case 2: print("Monday") case 3: print("Tuesday") case 4: print("Wednesday") case 5: print("Thursday") case 6: print("Friday") case 7: print("Saturday") default: print("Invalid day") ) 

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

 Среда

В приведенной выше программе оператор switch начинается с сопоставления значения dayOfWeek с case 1 . Поскольку значение dayOfWeek не соответствует первому значению case 1, оно переходит к следующему случаю, пока не будет совпадать одно значение.

Поскольку case 4 соответствует выражению switch, оператор print("Wednesday")внутри case выполняется, а case case завершается. Если ни один регистр не найден, выполняется инструкция по умолчанию .

Пример 2: инструкция Switch с откатом

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

 let dayOfWeek = 4 switch dayOfWeek ( case 1 : print("Sunday") case 2: print("Monday") case 3: print("Tuesday") case 4: print("Wednesday") fallthrough case 5: print("Thursday") case 6: print("Friday") case 7: print("Saturday") default: print("Invalid day") ) 

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

 среда Четверг

В приведенной выше программе case 4 выполняет оператор, print("Wednesday")а fallthroughключевое слово переходит к case5 . Оператор print("Thursday")внутри case 5 выполняется, даже если case не соответствует выражению switch. Таким образом, вы можете увидеть вывод четверга в консоли.

Пример 3: инструкция Switch с более сложными шаблонами

 let programmingLanguage = (name: "Go", version: 10) switch programmingLanguage ( case (let name,let version) where (version < 0 && name.count < 0) : print("Invalid input") case ("Swift",let version) where version == 4: print("Found latest version of Swift") case ("Swift" ,… <4 ): print("Found older version of swift)") case ("Swift" ,4… ) : print("Swift version greater than 4 is not released yet") case ("Taylor Swift",30) : print("OMG. This is Taylor swift") case (let name, let version): print(""" Programming Language:(name) Version: (version) Status: Not found """) ) 

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

 Язык программирования: Go Версия: 10 Статус: Не найдено

В приведенной выше программе мы сопоставляем язык программирования выражения типа кортеж с разными случаями, как показано ниже:

  • case (let name,let version) where (version < 0 && name.count < 0)
    В этом случае значение выражения переключения привязывается к временным константам или переменным для использования в теле случая с letключевым словом. Это называется привязкой значения.
    Вы также можете применить условие к этим значениям с помощью whereпредложения. Для нескольких условий where вы можете объединить их с помощью &&оператора, как в приведенном выше примере.
    Если case не удовлетворяет условию, определенному в предложении where, инструкции внутри этого блока case не выполняются и не выполняются для сравнения следующего case case.
  • case ("Swift" ,… <4 )
    В этом случае первый элемент кортежа сопоставляется со строковым литералом, "Swift"а также проверяется, находится ли второй элемент внутри одностороннего диапазона … <4.
  • case ("Swift" ,4… )
    В этом случае первый элемент кортежа сопоставляется со строковым литералом, "Swift"а также проверяется, находится ли второй элемент внутри одностороннего диапазона 4… .
  • case (let name, let version)
    В этом случае каждое значение кортежей привязывается к временным константам или переменным.

Интересные статьи...