0Pricing
Ruby Academy · Aula

Expressões case/when

Ramificação com várias alternativas.

Expressões case/when é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.

Ramificação em vários caminhos

Quando você compara um valor com várias possibilidades, uma cadeia longa de if/elsif fica confusa. A expressão case do Ruby torna a ramificação em vários caminhos clara e legível.

day = "Mon"
case day
when "Sat", "Sun"
  puts "Weekend"
else
  puts "Weekday"
end

case / when básico

O valor após case é comparado com cada when em ordem. A primeira correspondência é executada e, em seguida, o controle passa para end.

grade = "B"
case grade
when "A"
  puts "Excellent"
when "B"
  puts "Good"
when "C"
  puts "Okay"
end

Vários valores por when

Liste vários valores em um único when, separados por vírgulas. Se qualquer um deles corresponder, esse ramo será executado.

char = "e"
case char
when "a", "e", "i", "o", "u"
  puts "Vowel"
else
  puts "Consonant"
end

O ramo else

Adicione else como opção para todos os outros casos. Sem ele, um case sem correspondência simplesmente retorna nil.

code = 500
case code
when 200
  puts "OK"
when 404
  puts "Not Found"
else
  puts "Other status"
end

case é uma expressão

Assim como if, case retorna o valor do ramo correspondente, portanto você pode atribuí-lo diretamente.

score = 82
letter = case
when score >= 90 then "A"
when score >= 80 then "B"
else "C"
end
puts letter

A palavra-chave then

Use then para colocar o corpo na mesma linha que when em ramos curtos.

n = 3
case n
when 1 then puts "one"
when 2 then puts "two"
when 3 then puts "three"
end

Correspondência com intervalos

Um when pode conter um intervalo. Ruby usa o operador === nos bastidores, e o === de um intervalo verifica a pertinência.

score = 73
case score
when 90..100 then puts "A"
when 70..89 then puts "B"
when 0..69 then puts "C"
end

Correspondência por classe

Como Class === object é verdadeiro quando o objeto é uma instância, você pode ramificar com base no tipo.

value = 3.14
case value
when Integer then puts "an integer"
when Float then puts "a float"
when String then puts "a string"
end

A magia de ===

Cada when chama pattern === value. Intervalos, classes e expressões regulares definem comportamentos úteis para ===, e é por isso que case é tão flexível.

email = "jane@example.com"
case email
when /@/ then puts "Looks like an email"
else puts "No @ sign"
end

case sem assunto

Omita o valor após case para escrever uma cadeia clara de condições booleanas, como um if/elsif organizado.

temp = 5
case
when temp < 0 then puts "Freezing"
when temp < 15 then puts "Cold"
when temp < 25 then puts "Mild"
else puts "Warm"
end

Juntando tudo

case é ideal quando um valor determina a decisão. Prefira a forma sem assunto quando cada ramo for um teste booleano separado.

role = :admin
msg = case role
when :admin then "Full access"
when :editor then "Can edit"
when :viewer then "Read only"
else "No access"
end
puts msg

Verificação rápida

Teste sua compreensão de case/when.

Recapitulação

Você aprendeu a expressão case:

  • when encontra a primeira correspondência e então passa para end.
  • Um when pode listar vários valores.
  • case retorna um valor e aceita then.
  • Intervalos, classes e expressões regulares funcionam porque when usa ===.
  • A forma sem assunto é uma cadeia booleana clara.
n = 42
kind = case
when n.zero? then "zero"
when n.positive? then "positive"
else "negative"
end
puts kind

Perguntas Frequentes

A aula “Expressões case/when” é grátis?

Sim — o texto completo de “Expressões case/when” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.

O que vou aprender em “Expressões case/when”?

Ramificação com várias alternativas. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Ruby Academy?

Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Expressões case/when”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Ruby Academy?

Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. if, unless e ternário
  2. Expressões case/when
  3. Verdadeiro e falso em Ruby
  4. Cláusulas de guarda
← Voltar para Ruby Academy