Menu
Coddy logo textTech

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")
}
// warm

O 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).

challenge icon

Desafio

Iniciante

Leia 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: cold
  • 10...19: mild
  • 20...29: warm
  • 30...39: hot
  • 40 e 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 0
  • 40... — intervalo unilateral: 40 ou maior
  • Ordene os casos do menor para o maior; use default para 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
quiz iconTeste seus conhecimentos

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