Impara a identificare codice morto e codice irraggiungibile in Java. Può essere chiesto nella tua intervista Java problemi di codifica come un puzzle.

Codice morto e codice irraggiungibile errori

Per rendere il concetto di codice morto, in questo puzzle, ho dato un pezzo di codice qui sotto. Cercate di identificare i problemi nel codice, se è compilato in eclipse IDE.

Sto dando la risposta di questo puzzle nella prossima sezione, ma vi consiglio di provare prima voi stessi. È solo per divertimento.

Soluzione – Ha un codice morto

Tutti noi dobbiamo aver affrontato errori di compilazione relativi a “codice irraggiungibile” e alcuni possono aver notato “l’avviso di codice morto”. Nel primo metodo howToDoInJava_method1(), la seconda istruzione di stampa è irraggiungibile, quindi il compilatore si lamenterà per ragioni ignare.

Nel secondo metodo howToDoInJava_method2(), anche la seconda istruzione di stampa è irraggiungibile, ma il compilatore strano avverte solo. Più tardi cercheremo di ottenere la logica qui.

Anche nel terzo metodo howToDoInJava_method3(), la seconda istruzione di stampa è irraggiungibile, quindi il compilatore si lamenterà di nuovo.

Perché !!

Che cos’è il codice morto

Il codice irraggiungibile nel metodo 2 è chiamato “Codice morto”. Questo è puramente un errore riportato dal compilatore di Eclipse, e se si compila la classe sopra con “javac”, il compilatore Java integrato si lamenterà solo per gli altri due metodi. .

Citazione dalla specifica del linguaggio Java –

“L’idea è che ci deve essere qualche possibile percorso di esecuzione dall’inizio del costruttore, metodo, inizializzatore di istanza o inizializzatore statico che contiene la dichiarazione alla dichiarazione stessa. L’analisi tiene conto della struttura delle dichiarazioni.

A parte il trattamento speciale degli enunciati while, do e for la cui espressione di condizione ha il valore costante true, i valori delle altre espressioni non sono presi in considerazione nell’analisi del flusso”.

Quello che significa, è che il blocco 'if' non è preso in considerazione nel determinare il codice non raggiungibile. Poiché se si passa attraverso uno dei percorsi della dichiarazione 'if', si potrebbe raggiungere la seconda dichiarazione di stampa. Tutto dipende dal compilatore che determina questo durante la compilazione.

Negli altri due statement, il compilatore ha determinato l’irraggiungibilità quindi si lamenta con un errore.

Se riscriviamo il secondo metodo di nuovo così.

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

Ora, il compilatore determina che in nessun modo può raggiungere l’ultimo statement di stampa, quindi 'javac' riporta nuovamente codice irraggiungibile anche per questo secondo metodo.

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.