Saltar la navegación

Operador elif

Combinando If y else

Se usa para verificar más de una condición, y para detener cuando se encuentra la primera declaración verdadera.  

Es bastante útil para cunado requerimos insertar una serie de condiciones mutuamente excluyentes, en el caso de que alguna de ellas resulte verdadera, ya no deberá ser necesario validar el resto. Si se usan únicamente ifs para resolver el problema planteado, en caso de que alguna de las condiciones resulte verdadera, python continuará validando las demás aún cuando sabemos que nunca se van a cumplir, generando un código ineficiente. 

En el siguiente ejemplo solicitaremos la edad de una persona y veremos si se encuentra entre 0 y 10, 11 y 20, 21 y 30, 31 y 40, 41 y 50, 51 o más. Primero lo haremos con if y posteriormente con elfi, observe que al ejecutar no notará diferencia alguna en cuanto a su funcionamiento, pero el código con elif es más eficiente ya que al momento de que una condición resulta verdadera el resto ya no es necesario validarlas. 

#ejemplo con if

edad=int(input("Dame tu edad"))
if 0<=edad<11:
  print("Eres un niño")
if 10<edad<21:
  print("Estás en la adolecencia")
if 20<edad<31:
  print("Estás en la juventud")
if 30<edad<41:
  print("Eres adulto")
if 40<edad<51:
  print("Adulto mas viejo")
if edad>50:
  print("Adulto mayor")

#ejemplo con elif

edad=int(input("Dame tu edad"))
if 0<=edad<11:
  print("Eres un niño")
elif 10<edad<21:
  print("Estás en la adolecencia")
elif 20<edad<31:
  print("Estás en la juventud")
elif 30<edad<41:
  print("Eres adulto")
elif 40<edad<51:
  print("Adulto mas viejo")
elif edad>50:
  print("Adulto mayor")

La forma de ensamblar las siguientes declaraciones if-elif-else a veces se denomina cascada. Se debe prestar atención adicional a este caso:

  • No debes usar else sin un if precedente.
  • Else siempre es la última rama de la cascada , independientemente de si has usado elif o no.
  • Else es una parte opcional de la cascada, y puede omitirse.
  • Si hay una rama else en la cascada, solo se ejecuta una de todas las ramas.
  • Si no hay una rama else, es posible que no se ejecute ninguna de las opciones disponibles.

Creado con eXeLearning (Ventana nueva)