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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage