> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Anweisungen

> Anweisungen in der FlexiLayout-Sprache: das Trennen von Anweisungen, zusammengesetzte Blöcke, bedingte if-then-else-Verzweigungen und for-Schleifen mit break und continue.

<div id="statement-separators">
  ## Trennzeichen für Anweisungen
</div>

Anweisungen werden durch ein Semikolon (`;`) getrennt.

<div id="compound-statements">
  ## Zusammengesetzte Anweisungen
</div>

Eine oder mehrere Anweisungen können in geschweifte Klammern gesetzt werden, um eine zusammengesetzte Anweisung zu bilden. Zusammengesetzte Anweisungen werden üblicherweise als „Blöcke“ bezeichnet (nicht zu verwechseln mit FlexiLayout-Blöcken).

<div id="conditional-statements">
  ## Bedingte Anweisungen
</div>

In jedem Abschnitt, der zur Eingabe von Code dient, können Sie `if`-Anweisungen verwenden.

Mit der `if`-Anweisung lassen sich bedingte Verzweigungen steuern. Der Anweisungsblock einer `if`-Anweisung wird ausgeführt, wenn der Ausdruck den Wert `true` hat. Die Syntax der `if`-Anweisung gibt es in zwei Formen:

```text theme={null}
selection-statement:
    if ( expression ) then statement
    if ( expression ) then statement else statement
```

In beiden Formen der `if`-Anweisung werden die Ausdrücke ausgewertet.

In der ersten Syntaxform wird `statement` ausgeführt, wenn `expression` `true` ist. Ist `expression` `false`, wird `statement` übersprungen. In der zweiten Syntaxform mit `else` wird das zweite `statement` ausgeführt, wenn `expression` `false` ist.

<div id="iteration-statements">
  ## Iterationsanweisungen
</div>

In jedem Abschnitt, in den Sie Code eingeben können, können Sie `for`-Iterationsanweisungen verwenden.

Die `for`-Anweisung steuert Schleifen. Die Schleife wird ausgeführt, solange der Ausdruck den Wert `true` hat. Die Syntax hat folgende Form:

```text theme={null}
iteration-statement:
    for <var-name> from <from-expr> to <to-expr> [ step <step-expr>]
    <statement>
```

Der Name des Zählers `<var-name>` ist erforderlich. Dieser Name muss sich von den Namen der zuvor deklarierten Variablen unterscheiden. Der Gültigkeitsbereich des Zählers ist der Schleifenkörper. Innerhalb der Schleife können Sie den Wert des Zählers nicht ändern und keine Variable mit demselben Namen wie der Zähler deklarieren.

Die anfänglichen und endgültigen Zählerwerte `<from-expr>` bzw. `<to-expr>` werden vor der ersten Iteration der Schleife ausgewertet. Anschließend werden sie als Ganzzahlkonstanten behandelt, um Endlosschleifen zu vermeiden.

Der Parameter `step` ist optional. Wenn kein Wert für `step` angegeben ist, wird als Schritt 1 angenommen. Der Schrittwert wird zusammen mit den anfänglichen und endgültigen Zählerwerten einmal zu Beginn der Schleife ausgewertet.

Das Vorzeichen des Schritts bestimmt die Iterationsbedingung:

* Bei positiven Schrittwerten muss die Bedingung `<var-name> ≤ <to-expr>` erfüllt sein.
* Bei negativen Schrittwerten muss die Bedingung `<var-name> ≥ <to-expr>` erfüllt sein.

Der Schrittwert darf nicht null sein. Andernfalls wird eine Fehlermeldung angezeigt.

`<statement>` kann eine einzelne Anweisung oder ein in geschweifte Klammern eingeschlossener Block (zusammengesetzte Anweisung) sein.

Sie können innerhalb der Schleife auch die folgenden Anweisungen verwenden:

* `break` – Beendet die Schleife.
* `continue` – Geht zur nächsten Iteration der Schleife.
