Menu
Coddy logo textTech

If - Else anidados

Parte de la sección Fundamentos del Journey de R de Coddy — lección 25 de 78.

A veces, dos opciones no son suficientes. ¿Qué pasa si necesitas verificar múltiples condiciones y manejar cada una de manera diferente? Puedes colocar una sentencia if-else dentro de otro bloque if o else para crear rutas de decisión más complejas.

score <- 85

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

R primero comprueba si la puntuación es 90 o superior. Como 85 no cumple esa condición, se mueve al bloque else.

Dentro, otro if comprueba si la puntuación es al menos 80. Dado que 85 pasa esta prueba, imprime "Grade: B".

R proporciona una forma más limpia de escribir esto usando else if:

score <- 85

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

Ambos enfoques funcionan de la misma manera, pero else if mantiene su código más plano y fácil de leer. Puede encadenar tantos bloques else if como sea necesario, y R ejecutará solo el primer bloque cuya condición sea verdadera.

challenge icon

Desafío

Fácil

Crea un sistema de precios de boletos utilizando sentencias if-else anidadas o else if para determinar el precio del boleto según la edad.

Se te proporciona la siguiente variable:

age <- 25

Escribe una serie de condiciones para determinar e imprimir el precio del boleto basándote en estas reglas:

  • Si la edad es menor que 5, imprime "Free"
  • Si la edad está entre 5 y 12 (inclusive), imprime "$5"
  • Si la edad está entre 13 y 17 (inclusive), imprime "$8"
  • Si la edad está entre 18 y 64 (inclusive), imprime "$12"
  • Si la edad es 65 o mayor, imprime "$7"

Usa la función print() para tu salida.

Hoja de referencia

Puedes anidar sentencias if-else unas dentro de otras para comprobar múltiples condiciones:

score <- 85

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

Un enfoque más limpio es usar else if para encadenar múltiples condiciones:

score <- 85

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

R evalúa las condiciones en orden y ejecuta solo el primer bloque cuya condición sea verdadera. Puedes encadenar tantos bloques else if como sea necesario.

Pruébalo tú mismo

# Variable proporcionada
age <- 25

# TODO: Escribe tu código a continuación
# Usa sentencias if-else anidadas o else if para determinar el precio de la entrada
# basado en las reglas de edad proporcionadas
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos