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
endO 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"
endAmbos 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.
Desafio
FácilVocê recebeu a seguinte variável:
temperature = 15Crie um sistema de aviso meteorológico usando if, elsif e else para classificar a temperatura e imprimir a mensagem apropriada:
- Se
temperaturefor maior ou igual a30, imprimaHot - Stay hydrated - Se
temperaturefor maior ou igual a20, imprimaWarm - Enjoy the day - Se
temperaturefor maior ou igual a10, imprimaCool - Bring a jacket - Se
temperaturefor maior ou igual a0, imprimaCold - 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
endO 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"
endVocê 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 apropriadaEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa