Cuantas veces hemos visto código de condicionales del tipo
def myFunction(){
if (condition1){
do something ...
}else{
do another thing
}
return result
Si bien, no es algo que este mal, podemos refactorizar nuestro código para que el flujo de la lectura sea mas placentera.
Para poder realizar esto, lo que haremos es tomar lo que esta dentro del else, y ponerlo abajo del if, será ahora una consecuencia de que no se haya cumplido el if, que cambiará solo si la condicion se cumple.
Miremos un ejemplo sencillito
Usando if/else
def dividirEnteros(divisor, dividendo){
if (divisor == 0){
print("No se puede realizar dicha operacion")
return -1
}else{
resultado = dividendo / divisor
return resultado
}
Usando solo if
def dividirEnteros(divisor, dividendo){
resultado = 0
if (divisor == 0){
print("No se puede realizar dicha operacion")
return -1
resultado = dividendo / divisor
return resultado
Veamos que si lo extendemos a casos mas complejos, su potencial aumenta.
Imaginemos que tenemos que checkear que ciertos datos esten correctos, algo que es muy comun de ver es una cadena de if anidados
def myFunction(){
if (condition1){
si condicion1 se cumple, miro la condicion 2
if (condition2) {
si la condicion 2 se cumple, miro la 3 y asi hasta n...
operaciones
}
else {
operar distinto
}
}
}else{
do another thing
}
return result
Luego de 2 ifs, la cosa se pone pesada para comprender la función.
La solución a esto, es proponer un sistema de capas de control, cada capa tendrá una condicion que representa un nivel.De esa manera nuestro código queda de la siguiente manera.
def myFunction(){
inicializacion...
if (!condition1){
hacer cosas
}
hacer otras cosas
if (!condition2) {
hacer cosas
}
...
hacer otras cosas
return result
Top comments (0)