| Startseite | Inhalt
StarBasic / OpenOffice.org Basic FAQ
Fragen und Infos: starbasic@dannenhoefer.de

Zurück Vor |
| 3.5 Wie werden Variablen deklariert?
In Starbasic gibt es zwei Arten Variablen zu deklarieren. Implizit und Explizit. Bei der impliziten Deklaration wird die Variable automatisch mit ihrer ersten Verwendung deklariert. Das macht das Programmieren auf den ersten Blick einfach, weil man einfach mit der Zeile Eingabe = 2 die Variable Éingabe deklariert. Der Nachteil ist aber das man später bei Tippfehler zum Beispiel auch sofort eine neue Variable "Engabe" generiert. Der Interpreter erzeugt zusätzlich eine neue Variable und die existiert neben der ersten Variable. Man hat also versehentlicvh zwei Variablen. Dies kann zu langwierigen Fehlersuche führen. Dieses Risko kann man mit der expliziten Deklaration umgehen. Durch den Befehl Option Explicit am Anfang des Moduls wird der Interpreter angewiesen nur explizit deklarierte Variablen zu aktzeptieren. Eine explizite Deklaration der Variablen erfolgt durch den Befehl "Dim". Dim MyVariable as Integer Integer ist ein Variablentyp zu dem wir gleich kommen. Wenn jetzt im Programm versehentlichen irgendwo "MVariable" steht, erzeugt der Interpreter eine Fehlermeldung. Es ist Starbaisc dabei egal an welcher Stelle die Variable deklariert wird. Man kann sie am Anfang der Prozedur alle gemeinsam oder erst in der Zeile vor der ersten Verwendung einzeln deklarien. Guter Programmierstil ist die Variablen am Anfang festzulegen, da damit die Übersichtlichkeit über den Code besser ist. Einige andere Programmiersprachen erzwingen sogar solch ein Vorgehen. Noch eine wichtige Bemerkung zu Variablendeklaration in Starbasic. Jede Variable erhält ohne explezite Deklaration automatisch den Typ Variant. Das ist soweit eigentlich kein Problem, aber Starbasic interpretiert jede Variable ohne Typenbezeichnung als Variant. Eine Aufzählung von Variablen mit anschließender Deklaration des Typen, wie in anderen Programmiersprachen üblich geht daher nicht. Die Zeile: Dim i1,i2 as Integer, intepretiert Starbasic als i1 = Variant und i2 = integer. Das ist auf den ersten Blick nicht schlimm, wenn man aber den Variablen Werte zuweist kann es zu Problemen kommen. Im obigen Fall kann es dann passieren das die Werte falsch interpretiert werden. Dies kann besonders bei der Verwechslung von Integer- und Double-Variablen passieren. Wenn man den Wert einer Double Variablen einer Integer-Variablen zuweist. Dabei wird die Zahl nämlich zu einer Integer-Zahl gerundet. Um beide wirklich als Integer zu deklarieren muß man diese einzeln deklarieren. Dim i1 as integer,i2 as Integer. Dazu ein Beispiel: i1= 3 i2= 2.5 Ergebnis=i1*i2 Ohne jede Deklaration ist das Ergebnis 7,5, Dim i1,i2,i3 as integer -> führt zu dem Ergebnis 8, Dim i1,i2 as integer, i3 as integer -> führt zu dem Ergebnis 9, ebenso führt Dim i1 as integer, i2 as integer, i3 as integer zu dem Ergebnis 9. Ich denke die möglichen Probleme mit falschen Deklarationen sind daraus nachvollziehbar. Tipp: Jede Variable in einer eigenen Zeile dimensionieren. |
Seitenanfang |

2003 - 2009 von Michael Dannenhöfer |
Letzte Aktualisierung: 06.04.2009