Java-Variablenbereich in if-Anweisung [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Eine nutzlose lokale Variable deklarieren 2 AntwortenEine einzeilige Schleife mit einem obligatorischen Klammerpaar in Java 3 Antworten

Ich habe einen Kompilierungsfehler für den folgenden Code erhalten:

if(true)
    int a = 10;
else
    int b = 20;

Wenn ich den folgenden Code ändere, liegt kein Kompilierungsfehler vor:

if(true) {
    int a = 10;
}
else {
    int b = 20;
}

Warum ist die erste Syntax falsch und von welchem Sprachstandard?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage