Instrução de switch Swift (com exemplos)

Neste artigo, você aprenderá a usar instruções de controle de switch para controlar o fluxo de execução do seu programa.

A instrução switch também é uma variedade de instruções de controle Swift egif-else, guard etc., que executa ações diferentes com base em condições diferentes.

A beleza da instrução switch é que ela pode comparar um valor com vários padrões de correspondência possíveis. Portanto, ele pode ser usado como um substituto para if… else… ifescadas longas enquanto combina padrões complexos.

Sintaxe da instrução switch

A sintaxe da instrução switch é:

 alternar variável / expressão (valor de caso1: // declarações valor de caso2: // declarações padrão: // declarações)

Como funciona a instrução Switch em Swift?

  • A expressão switch é avaliada uma vez.
  • Ele pega a expressão e compara com cada valor de caso no pedido (Superior -> Inferior).
  • Se houver uma correspondência, as instruções dentro do caso são executadas e toda a instrução switch termina sua execução assim que o primeiro caso switch correspondente é concluído.
  • Se não houver correspondência para o caso, cabe ao próximo caso.
  • A palavra-chave padrão especifica o código a ser executado se não houver correspondência de maiúsculas e minúsculas.

Nota : O corpo de cada caso deve conter pelo menos uma instrução executável.

Exemplo 1: programa simples usando a instrução 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") ) 

Quando você executa o programa acima, a saída será:

 Quarta feira

No programa acima, a instrução switch começa combinando o valor dayOfWeek com o caso 1 . Como o valor dayOfWeek não corresponde ao valor 1 do primeiro caso, ele cai para o próximo caso até que um corresponda.

Como o caso 4 corresponde à expressão switch, a instrução print("Wednesday")dentro do caso é executada e o caso switch termina. Se nenhum caso foi correspondido, a instrução dentro do padrão é executada.

Exemplo 2: Instrução Switch com fallthrough

Se você usar a fallthroughpalavra - chave dentro da instrução case, o controle passa para o próximo caso, mesmo se o valor case não corresponder à expressão 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") ) 

Quando você executa o programa acima, a saída será:

 quarta-feira quinta-feira

No programa acima, o caso 4 executa a instrução print("Wednesday")e a fallthroughpalavra - chave prossegue para o caso 5 . A instrução print("Thursday")dentro do caso 5 é executada mesmo se o caso não corresponder à expressão switch. Portanto, você pode ver a saída de quinta-feira no console.

Exemplo 3: Instrução Switch com padrões mais complexos

 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 """) ) 

Quando você executa o programa acima, a saída será:

 Linguagem de programação: Go Versão: 10 Status: Não encontrado

No programa acima, estamos combinando linguagem de programação de expressão do tipo tupla com diferentes casos, conforme abaixo:

  • case (let name,let version) where (version < 0 && name.count < 0)
    Este caso associa o valor da expressão switch a constantes ou variáveis ​​temporárias para uso no corpo do caso com letpalavra - chave. Isso é conhecido como vinculação de valor.
    Você também pode aplicar condição a esses valores com wherecláusula. Para várias condições where, você pode concatená-las usando o &&operador como no exemplo acima.
    Se o caso não satisfaz a condição definida dentro da cláusula where, as instruções dentro desse bloco de caso não são executadas e caem para comparar o próximo caso de switch.
  • case ("Swift" ,… <4 )
    Este caso combina o primeiro elemento da tupla com o literal de string "Swift"e também verifica se o segundo elemento está dentro do intervalo unilateral … <4.
  • case ("Swift" ,4… )
    Este caso combina o primeiro elemento da tupla com o literal de string "Swift"e também verifica se o segundo elemento está dentro do intervalo unilateral 4… .
  • case (let name, let version)
    Este caso associa todos os valores das tuplas às constantes ou variáveis ​​temporárias.

Artigos interessantes...