Tecnología

Inicio

Cómo invertir una instrucción IF para reducir la jerarquización

declaraciones "if-else" son bastante comunes en la mayoría de los lenguajes de programación. En su forma más simple, una instrucción de código "if-else" simplemente le dice al equipo si existe una cierta condición, a continuación, realizar una determinada acción o función o hacer otra cosa si existe otra condición. El uso excesivo de declaraciones "if-else" a menudo conduce a código excesivamente complejo y anidación. Anidación ocurre cuando tiene varias condiciones que pueden estar presentes, y un ordenador debe realizar una o más funciones que son posibles en base a la condición encontrada. Cuando son posibles muchas condiciones o caminos, es una buena idea utilizar refactorización, o inversión "if-else", para tratar de reducir el número de caminos "if-else".

Instrucciones

1 Carga la aplicación de editor de código. Abra el archivo de código que contiene las instrucciones anidadas "if-else" que desea invertir o refactorizar.

2 Desplazarse hasta el punto en el código fuente que contiene los "if-else" cláusulas comunicado.

3 Determinar si las cláusulas de guardia pueden simplificar las instrucciones anidadas condicional "if-else". cláusulas de la Guardia simplificar el código y reducir el número de posibles errores de detención durante la ejecución. Por ejemplo, aquí es un ejemplo de código de Visual Basic que contiene el código excesivamente complicado que puede beneficiarse de la inversión o la refactorización con cláusulas de guardia:

getPaymentAmount doble () {

double result;

si (_isSingle) resultado = singleAmount ();

else {

si (_isMarried) resultado = marriedAmount ();

else {

si (_isDivorced) resultado = divorcedAmount ();

resultado otra cosa = normalPaymentAmount ();

};

}

return resultado;

};

4 Invertir o refactorizar el código para simplificar y reducir los posibles errores de detención. Evitar múltiples condiciones de anidación eliminando el componente "más" por completo y reemplazarlo con el comando comunicado "número". Revisar los siguientes cambios en el código original:

getPaymentAmount doble () {

if (_isSingle) return singleAmount();

si (_isMarried) marriedAmount de retorno ();

si (_isDivorced) divorcedAmount retorno ();

normalPaymentAmount volver ();

};

El comando comunicado "retorno" no detiene la ejecución de código cuando no existen condiciones; Por lo tanto, el código se ejecuta sin interrupción hasta que se encuentra una condición válida. El resultado es un código más limpio tanto que corre más rápido y con menos errores posibles.