Aprende a identificar el código muerto y el código inalcanzable en Java. Se puede pedir en sus problemas de codificación de la entrevista de Java como un rompecabezas.

Código muerto y errores de código inalcanzable

Para hacer concepto de código muerto, en este rompecabezas, he dado un pedazo de código a continuación. Trate de identificar los problemas en el código, si se compila en eclipse IDE.

Estoy dando la respuesta del rompecabezas anterior en la siguiente sección, pero yo recomendaría a probar primero a ti mismo. Es sólo para divertirse.

Solución – Tiene código muerto

Todos debemos haber enfrentado errores de compilación relacionados con «Código inalcanzable» y algunos pueden haber notado «advertencia de código muerto». El rompecabezas anterior está relacionado con ellos solamente.

En el primer método howToDoInJava_method1(), la segunda sentencia de impresión es inalcanzable, por lo que el compilador se quejará por razones ajenas.

En el segundo método howToDoInJava_method2(), la segunda sentencia de impresión también es inalcanzable, pero extrañamente el compilador sólo le advierte. Más tarde trataremos de conseguir la lógica aquí.

En el tercer método howToDoInJava_method3() también, la segunda sentencia de impresión es inalcanzable, por lo que el compilador se quejará de nuevo.

¡Por qué!

Qué es el código muerto

El código inalcanzable en el método 2 se llama «Código muerto». Esto es puramente Eclipse compilador informó de error, y si va a compilar por encima de la clase con «javac», Java compilador incorporado sólo se quejan de otros dos métodos.

Cita de la especificación del lenguaje Java –

«La idea es que debe haber alguna ruta de ejecución posible desde el principio del constructor, método, inicializador de instancia o inicializador estático que contiene la declaración hasta la propia declaración. El análisis tiene en cuenta la estructura de las declaraciones.

Salvo el tratamiento especial de las sentencias while, do y for cuya expresión de condición tiene el valor constante true, los valores de otras expresiones no se tienen en cuenta en el análisis de flujo».

Lo que esto significa, es que el bloque 'if' no se tiene en cuenta mientras se determina el código inalcanzable. Ya que si pasas por uno de los caminos de la sentencia 'if', podrías llegar a la segunda sentencia print. Todo depende del compilador que determina esto durante el tiempo de compilación.

En otras dos sentencias, el compilador ha determinado la inalcanzabilidad por lo que se queja con un error.

Si volvemos a escribir el segundo método de esta manera.

public void howToDoInJava_method2() {System.out.println("how to do");if (true) {return;}else{return;}System.out.println("in java");}

Ahora, el compilador determina que de ninguna manera puede llegar a la última sentencia print, por lo que 'javac' vuelve a informar de código inalcanzable para este segundo método también.

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada.