> ## 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

> Grundlagen der Anweisungssyntax, einschließlich Trennzeichen, zusammengesetzter Anweisungen, bedingter Anweisungen und Iterationsschleifen.

<div id="separating-statements">
  ## Trennung von 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 für die Codeeingabe vorgesehen ist, können Sie bedingte if-Anweisungen verwenden.

Die if-Anweisung steuert die bedingte Verzweigung. Der Rumpf einer if-Anweisung wird ausgeführt, wenn der Wert des Ausdrucks `true` ist. Die Syntax der if-Anweisung hat zwei Formen.

**Syntax**

selection-statement:

```
if ( Ausdruck ) then Anweisung
if ( Ausdruck ) then Anweisung else Anweisung
```

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

In der ersten Syntaxform wird die Anweisung ausgeführt, wenn der Ausdruck `true` ergibt. Ergibt der Ausdruck `false`, wird die Anweisung übersprungen. In der zweiten Syntaxform mit `else` wird die zweite Anweisung ausgeführt, wenn der Ausdruck `false` ergibt.

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

In jedem Abschnitt, der für die Eingabe von Code vorgesehen ist, können Sie Iterationsanweisungen verwenden.

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

**Syntax**

Iterationsanweisung:

```
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 oben deklarierten Variablen unterscheiden. Der Gültigkeitsbereich des Zählers ist der Schleifenkörper. Innerhalb der Schleife ist es nicht zulässig, den Wert des Zählers zu ändern oder Variablen mit demselben Namen wie der Zähler zu deklarieren.

Die anfänglichen und endgültigen Zählerwerte von `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 `step`-Wert angegeben ist, wird `step` als 1 angenommen. Der `step`-Wert sowie die Anfangs- und Endwerte werden einmal zu Beginn der Schleife ausgewertet. Je nach Vorzeichen von `step` wird die Bedingung für die iteration festgelegt. Bei positiven `step`-Werten muss die folgende Bedingung erfüllt sein: `<var-name> ≤ <to-expr>`, bei negativen `step`-Werten gilt folgende Bedingung: `<var-name> ≥ <to-expr>`. Der `step`-Wert darf nicht null sein, andernfalls wird eine Fehlermeldung ausgegeben.

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

Sie können außerdem die folgenden Anweisungen innerhalb der Schleife verwenden:

* `break` - beendet die Schleife
* `continue` - springt zur nächsten Iteration der Schleife
