Menu
Coddy logo textTech

If - Else Aninhado

Parte da seção Fundamentos do Journey de R da Coddy — lição 25 de 78.

Às vezes, duas opções não são suficientes. E se você precisar verificar várias condições e lidar com cada uma de forma diferente? Você pode colocar uma instrução if-else dentro de outro bloco if ou else para criar caminhos de decisão mais complexos.

score <- 85

if (score >= 90) {
  print("Grade: A")
} else {
  if (score >= 80) {
    print("Grade: B")
  } else {
    print("Grade: C or below")
  }
}

O R primeiro verifica se a pontuação é 90 ou superior. Como 85 não atende a essa condição, ele passa para o bloco else.

Dentro, outro if verifica se a pontuação é de pelo menos 80. Como 85 passa neste teste, ele imprime "Grade: B".

O R fornece uma maneira mais limpa de escrever isso usando else if:

score <- 85

if (score >= 90) {
  print("Grade: A")
} else if (score >= 80) {
  print("Grade: B")
} else {
  print("Grade: C or below")
}

Ambas as abordagens funcionam da mesma forma, mas else if mantém seu código mais plano e fácil de ler. Você pode encadear quantos blocos else if forem necessários, e o R executará apenas o primeiro bloco cuja condição for verdadeira.

challenge icon

Desafio

Fácil

Crie um sistema de preços de ingressos usando instruções if-else aninhadas ou else if para determinar o preço do ingresso com base na idade.

Você recebeu a seguinte variável:

age <- 25

Escreva uma série de condições para determinar e imprimir o preço do ingresso com base nestas regras:

  • Se a idade for menor que 5, imprima "Free"
  • Se a idade estiver entre 5 e 12 (inclusive), imprima "$5"
  • Se a idade estiver entre 13 e 17 (inclusive), imprima "$8"
  • Se a idade estiver entre 18 e 64 (inclusive), imprima "$12"
  • Se a idade for 65 ou mais, imprima "$7"

Use a função print() para o seu output.

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) {
  print("Grade: A")
} else {
  if (score >= 80) {
    print("Grade: B")
  } else {
    print("Grade: C or below")
  }
}

Uma abordagem mais limpa é usar else if para encadear múltiplas condições:

score <- 85

if (score >= 90) {
  print("Grade: A")
} else if (score >= 80) {
  print("Grade: B")
} else {
  print("Grade: C or below")
}

O R avalia as condições em ordem e executa apenas o primeiro bloco cuja condição seja verdadeira. Você pode encadear quantos blocos else if forem necessários.

Experimente você mesmo

# Variável fornecida
age <- 25

# TODO: Escreva seu código abaixo
# Use instruções if-else aninhadas ou else if para determinar o preço do ingresso
# com base nas regras de idade fornecidas
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