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"
endcase / 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"
endVá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"
endO 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"
endcase é 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 letterA 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"
endCorrespondê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"
endCorrespondê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"
endA 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"
endcase 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"
endJuntando 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 msgVerificação rápida
Teste sua compreensão de case/when.
Recapitulação
Você aprendeu a expressão case:
whenencontra a primeira correspondência e então passa paraend.- Um
whenpode listar vários valores. caseretorna um valor e aceitathen.- Intervalos, classes e expressões regulares funcionam porque
whenusa===. - 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 kindPerguntas 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
- if, unless e ternário
- Expressões case/when
- Verdadeiro e falso em Ruby
- Cláusulas de guarda