Menu
Coddy logo textTech

If - Else Aninhado

Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 24 de 88.

E se você precisar verificar mais de duas condições? Você pode colocar uma instrução if-else dentro de outra instrução if-else. Isso é chamado de aninhamento e permite lidar com múltiplos pontos de decisão.

score = 85

if score >= 90
  puts "Grade: A"
else
  if score >= 80
    puts "Grade: B"
  else
    puts "Grade: C"
  end
end

O Ruby verifica a primeira condição. Se for falsa, ele move para o bloco else onde outro if-else aguarda. Isso cria uma cadeia de decisões, cada uma restringindo as possibilidades.

O Ruby oferece uma maneira mais limpa de escrever isso usando elsif, que combina else e if em uma única palavra-chave:

score = 85

if score >= 90
  puts "Grade: A"
elsif score >= 80
  puts "Grade: B"
else
  puts "Grade: C"
end

Ambos os exemplos produzem o mesmo resultado, mas elsif mantém seu código mais plano e fácil de ler. Você pode encadear quantas condições elsif você precisar, e o else final captura qualquer coisa que não corresponda às condições anteriores.

challenge icon

Desafio

Fácil

Você recebeu a seguinte variável:

temperature = 15

Crie um sistema de aviso meteorológico usando if, elsif e else para classificar a temperatura e imprimir a mensagem apropriada:

  • Se temperature for maior ou igual a 30, imprima Hot - Stay hydrated
  • Se temperature for maior ou igual a 20, imprima Warm - Enjoy the day
  • Se temperature for maior ou igual a 10, imprima Cool - Bring a jacket
  • Se temperature for maior ou igual a 0, imprima Cold - Bundle up
  • Caso contrário, imprima Freezing - Stay indoors

Exiba apenas a única mensagem que corresponde à temperatura.

Folha de consulta

Você pode aninhar instruções if-else umas dentro das outras para verificar múltiplas condições:

score = 85

if score >= 90
  puts "Grade: A"
else
  if score >= 80
    puts "Grade: B"
  else
    puts "Grade: C"
  end
end

O Ruby fornece o elsif como uma maneira mais limpa de encadear múltiplas condições:

score = 85

if score >= 90
  puts "Grade: A"
elsif score >= 80
  puts "Grade: B"
else
  puts "Grade: C"
end

Você pode encadear quantas condições elsif forem necessárias. O else final captura qualquer coisa que não corresponda às condições anteriores.

Experimente você mesmo

temperature = 15

# TODO: Escreva seu código abaixo para classificar a temperatura
# Use if, elsif e else para imprimir a mensagem de aviso meteorológico apropriada
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 Fundamentos