Wie gesagt sind lokale Variablen in ihren durch geschweifte Klammern markierte Blöcken gültig.
... ab der Stelle wo sie deklariert wurden, und natürlich auch in darin liegenden Blöcken, wenn dort nicht eine Variable gleichen Namens die ausserhalb definierte versteckt.
( Alles ohne Syntax-Gemeckere )
{
// Serial.println(i); // hier ist i nicht definiert : Syntax-Fehler, wenn diese Zeile nicht auskommentiert wäre
int i = 100 ; // Hier wird i definiert
i+= 23; // Hier wird i verändert ( auf 123 )
Serial.println(i);
for (int j = 0 ; j < i ; j++) // Hier wird j definiert
{
Serial.print(i); // hier ist das äussere i (123) verwendbar
Serial.println(j);
}
if ( j == i ) // hier ist j immer noch definiert, und nach dem Schleifenende auch auf 123 hochgezählt worden
{
int i = -1 ; // erlaubt, dieses i gilt ab hier
Serial.println(i); // -1
}
Serial.println(i); // hier gilt wieder das äussere i (123)
}
Das nur als kleine Ergänzung und zur Abschreckung ![]()