Zurück zu Gambas


Übersicht der Strukturen von Gambas

Bearbeiten

Wie die meisten Programmiersprachen gibt es in Gambas verschiedene Möglichkeiten zur Ablaufsteuerung:

  • Reihenfolge
  • Auswahl
  • Wiederholung
  • Unterprogramme

Reihenfolge

Bearbeiten

Normalerweise wird in einem Programm eine Befehlszeile nach der anderen abgearbeitet. Ausnahmen zu diesem Prinzip gibt es allerdings auch: Die Definition von Variablen mit dem DIM-Befehl erfolgt immer am Programmanfang oder am Anfang eines Unterprogrammes. Außerdem bietet der Befehl GOTO Möglichkeiten, die Reihenfolge des Programmes zu überspringen. Bei Unterprogrammen spielt die Reihenfolge im Codefenster keine Rolle, da sie über ihren Namen angesprungen werden. Trotzdem sollte man sich eine gewisse Reihenfolge angewöhnen. Beispielsweise gehört das Unterprogramm PUBLIC SUB Form_Open() an den Anfang des eigenen Codes.


 <Anweisung>
 <Anweisung>
 <Anweisung>
 <...>

Programmverzweigungen erfordern Bedingungen und Entscheidungen. Um dies zu ermöglichen gibt es verschiedene Befehle. Falls eine Bedingung nicht zutreffen sollte, wird die Zeile einfach übersprungen und das Programm macht bei der Zeile nach der Bedingungsabfrage weiter.

Einseitige Auswahl

 IF <Bedingung> THEN <Anweisung>

Zweiseitige Auswahl

 IF <Bedingung> THEN 
    <Anweisung> 
 ELSE 
   <Anweisung>
 ENDIF

Fallunterscheidung

 SELECT CASE TRUE 
   CASE <Bedingung1> 
    <Anweisung>
   CASE <Bedingung2> 
    <Anweisung>
   CASE <Bedingung3> 
    <Anweisung>
   CASE ELSE <Anweisung>
 END SELECT

Schleifen

Bearbeiten

In Schleifen wird ein Befehl oder eine Befehlsfolge mehrfach wiederholt.

Zählschleife

 FOR <Laufvariable> = <Startwert> TO <Endwert>  
   <Anweisung>
 NEXT

Abweisende Schleife

 WHILE <Wiederhol-Bedingung> 
   DO <Anweisung>

Nicht abweisende Schleife

 REPEAT 
   <Anweisung> 
 UNTIL <Abbruch-Bedingung>

Zählschleife für Arrays

 FOR EACH <Element> IN <Liste> 
   <Anweisung>
 NEXT

Die aufgezählten Strukturen kann man ineinander verschachteln. Dies führt aber oft zu unübersichtlichem Code und sollte vielleicht eher durch Funktionen in Unterprogrammen ersetzt werden.