Switch com Intervalos
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 30 de 86.
As instruções switch tornam-se ainda mais poderosas quando você usa intervalos em vez de valores individuais. Isso é perfeito para categorizar números em grupos, como converter uma pontuação em uma nota.
let score = 85
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 70..<80:
print("C")
case 60..<70:
print("D")
default:
print("F")
}O operador ... cria um intervalo fechado que inclui ambos os limites, então 90...100 corresponde a 90, 91, até o 100. O operador ..< cria um intervalo semiaberto que exclui o limite superior — 80..<90 corresponde de 80 a 89.
O Swift verifica cada caso em ordem e executa o primeiro que corresponder. Como nossa pontuação é 85, ela se enquadra em 80..<90, então "B" é impresso. Essa abordagem é muito mais limpa do que escrever múltiplos else if com operadores de comparação.
Desafio
FácilEscreva uma função getAgeCategory que recebe age e retorna a categoria da fase da vida baseada em faixas etárias.
Use uma instrução switch com intervalos para categorizar a idade em uma das cinco fases da vida.
Condições:
0...2- retorne"Infant"3...12- retorne"Child"13...19- retorne"Teenager"20...64- retorne"Adult"65...120- retorne"Senior"- Qualquer outro valor - retorne
"Invalid age"
Parâmetros:
age(Int): A idade da pessoa
Retorna: A categoria da fase da vida como uma String
Folha de consulta
Instruções switch podem usar intervalos para corresponder a valores dentro de um intervalo específico:
let score = 85
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 70..<80:
print("C")
default:
print("F")
}O operador ... cria um intervalo fechado que inclui ambos os limites (ex: 90...100 corresponde de 90 a 100).
O operador ..< cria um intervalo semiaberto que exclui o limite superior (ex: 80..<90 corresponde de 80 a 89).
O Swift verifica cada caso em ordem e executa o primeiro que corresponder.
Experimente você mesmo
func getAgeCategory(age: Int) -> String {
// Escreva o código aqui
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtribuição CompostaRecapitulação - Matemática SimplesOperadores de Comparação7IO Básico
Função PrintInterpolação de StringsEntrada ReadLineConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso10Funções
Declarar uma FunçãoParâmetros e ArgumentosValores de RetornoRótulos de ArgumentosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeratedIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de TipoNúmerosStringBooleanosConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operador Ternário8Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada11FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz3Opcionais
O que são OpcionaisDesembrulhando com If LetGuard LetOperador de Coalescência NulaRecapitulação - Desembrulho Seguro6Tomada de Decisão
Estrutura IfIf - ElseRecapitulação - Calculadora SimplesEstrutura SwitchSwitch com Intervalos9Loops
Loop For-InLoop WhileLoop Repeat-WhileBreakContinueRecapitulação - FatorialIntervalos em LoopsLoop AninhadoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRecapitulação - Lista de ProdutosRecapitulação - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa