Wann tritt die Bedingung "Nicht erreichbarer Code" in Java auf?
Wenn nach der Endlosschleife eine Anweisung geschrieben wird, wird diese Anweisung zum nicht erreichbaren Code. Zum Beispiel:
for(;;)
{
}
Sytem.out.println("Test-1"); //unreachable code
Aber ich stehe hier vor einigen Schwierigkeiten.
Schauen Sie sich die beiden folgenden Codefragmente an:
Code snippet1:
for(final int z=4;z<6;)
{
}
System.out.println("Test-2"); //unreachable code
Hier muss die letzte Anweisung nicht erreichbar sein, da die Schleife unendlich ist und die Ausgabe wie erwartet ist.
Code Snippet2:
final int z=4;
for(;;)
{
if(z<2)
break;
}
System.out.println("Test-3"); //not unreachable
Konzeptionell ist die for-Schleife im obigen Code ebenfalls unendlich, da z final und istif(z<2)
wird nur zur Kompilierungszeit bestimmt. Die if-Bedingung ist niemals wahr und die Schleife wird niemals unterbrochen. Die letzte Anweisung im obigen Code ist jedoch nicht unerreichbar.
Fragen:
Warum passiert das?
Kann mir jemand die genauen Regeln sagen, nach denen wir sehen können, ob Code nicht erreichbar ist oder nicht.