Was ich ja bereits gesagt hatte:
Außerhalb der Schleife ist die Schleifenvariable undefiniert, also es wird nicht "garantiert", dass sie dort einen bestimmten wert hat.
Dass sie es doch mal haben kann, ist eine andere Sache, auf die man sich aber niemals verlassen kann.
Die Variable kann/darf man außerhalb auch gern wiederverwenden, für eine andere Schleife oder für sonstwas, aber dort hat man sie natürlich vorer zu initialisieren.
Eigentlich wäre es konsequent, wenn der Compiler hier seinen "Variable wurde initialisiert"-Status nach der Schleife zurücksetzt.
Aber es ist hier das gleiche Problem wie mit nichtinitialisierten Funktions-Results, welche ebenfalls nicht "bemängelt" werden, wenn es sich um einen gemanagten Typen ala String handelt, da er ja per se initilisiert ist (außerhalb der Funktion), aber ihr dennoch keinen "definierten" Initialwert besitzt.
Für Schleifen in C++ ist das was anderes, denn dort "definierst"
DU was wie mit der Variable passiert.