Gültigkeitsbereich von Variablen

Bei grösseren Programmen mit mehreren Funktionen und vielen Variablen besteht schnell die Gefahr, dass versehentlich schon verwendete Variablennamen verwendet werden.

Bei folgendem Programm, welches das kleine 1x1 ausgeben soll, gibt es ein ernstes Problem:

//Hauptprogramm for(i=1; i<=10; i++) { z=reihe(i); output(z); } function reihe(n) { r=''; for(i=1; i<=10; i++) { r=r+String(i*n)+', '; } return r; }

Die Variable i hat nach dem ersten Aufruf der Funktion reihe() den Wert 10. Die Schleife des Hauptprogramms wird also nur einmal durchlaufen.

Das Problem liegt darin, dass die Variable i eine globale Variable ist. Das heisst ihr Wert kann von allen Programmteilen geändert werden.
Eine Lösung besteht darin, die Variable i in der Funktion reihe() anders zu benennen. Dies ist aber nicht so klug, denn der neue Variablenname könnte zu neuen Fehlern führen...

Um solche Fehler zu verhindern, kann man die Variablen lokal definieren. Lokale Variablen sind nur in der Funktion "sichtbar" in der sie definiert wurden.
Variablen sind lokal, wenn vor ihrer ersten Definition das Codewort var steht:

//Hauptprogramm for(i=1; i<=10; i++) { z=reihe(i); output(z); } function reihe(n) { var r=''; var i; for(i=1; i<=10; i++) { r=r+String(i*n)+', '; } return r; }
schliessen
schliessen Verbessere das fehlerhafte Programm im CodeLab, indem du die Variablen in der Funktion mit var als lokale Variablen deklarierst.