Intervalos no Switch
Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 10 de 56.
Você usou switch com intervalos nos fundamentos. O mesmo truque se aplica a problemas de classificação reais, onde cada caso cobre uma faixa de valores.
let temp = 22
switch temp {
case ..<0: print("freezing")
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot")
}
// warmO primeiro case ..<0 usa a forma de intervalo unilateral: "qualquer valor estritamente menor que 0". Você também pode usar 0... para significar "0 ou maior".
Os casos são verificados de cima para baixo e a primeira correspondência vence, portanto, ordene-os do menor para o maior (ou use default para o caso geral).
Desafio
InicianteLeia um único número inteiro da entrada: uma temperatura em Celsius. Imprima um destes rótulos usando um único switch com casos de intervalo (range cases):
- Abaixo de
0(negativos):freezing 0...9:cold10...19:mild20...29:warm30...39:hot40e acima:scorching
Para a entrada 22, a saída é warm.
Folha de consulta
Use switch com intervalos (range cases) para classificar valores. Os casos são verificados de cima para baixo; a primeira correspondência vence.
let temp = 22
switch temp {
case ..<0: print("freezing") // unilateral: qualquer coisa abaixo de 0
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot") // captura tudo
}
// warm..<0— intervalo unilateral: qualquer valor estritamente menor que 040...— intervalo unilateral: 40 ou maior- Ordene os casos do menor para o maior; use
defaultpara a captura de todos os casos restantes
Experimente você mesmo
let temp = Int(readLine()!)!
// TODO: use switch em temp usando intervalos, imprima o rótulo correspondente
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Contagem e ÍndicesCase e TrimBusca em StringsDivisão e JunçãoSubstituindo SubstringsRecapitulação - Verificação de Nome de Usuário4Conjuntos
Criando ConjuntosUnião e InterseçãoSubtração e Diferença SimétricaSubconjunto e SuperconjuntoRecapitulação - Filtro de Tags7Projeto - Monitor de Hábitos
Visão Geral do ProjetoMarcar como Concluído10Projeto - Mecanismo de Quiz
Visão Geral do ProjetoFazer Perguntas2Intervalos e Strides
Fechado vs Meio-AbertoStrideMétodos de IntervaloIntervalos no SwitchRecapitulação - Grade de Calendário5Funções de Ordem Superior Parte 1
MapFilterReduceEncadeando map, filter, reduceRecapitulação - Estatísticas de Palavras