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

# Instructions

> Instructions du langage FlexiLayout : séparation des instructions, blocs d’instructions, branchement conditionnel if-then-else et boucles for avec break et continue.

<div id="statement-separators">
  ## Séparateurs d’instructions
</div>

Les instructions sont séparées par un point-virgule (`;`).

<div id="compound-statements">
  ## Instructions composées
</div>

Une ou plusieurs instructions peuvent être délimitées par des accolades pour former une instruction composée. Les instructions composées sont couramment appelées « blocs » (à ne pas confondre avec les blocs FlexiLayout).

<div id="conditional-statements">
  ## Instructions conditionnelles
</div>

Dans toute section où vous pouvez saisir du code, vous pouvez utiliser des instructions conditionnelles `if`.

L'instruction `if` contrôle le branchement conditionnel. Le corps d'une instruction `if` est exécuté si la valeur de l'expression est `true`. La syntaxe de l'instruction `if` se présente sous deux formes :

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

Dans les deux formes de l’instruction `if`, les expressions sont évaluées.

Dans la première forme de la syntaxe, si `expression` vaut `true`, `statement` est exécuté. Si `expression` vaut `false`, `statement` n’est pas exécuté. Dans la deuxième forme de la syntaxe, qui utilise `else`, le deuxième `statement` est exécuté si `expression` vaut `false`.

<div id="iteration-statements">
  ## Instructions d’itération
</div>

Dans toute section prévue pour la saisie de code, vous pouvez utiliser des instructions d’itération `for`.

L’instruction `for` sert à contrôler les boucles. La boucle est exécutée tant que la valeur de l’expression est `true`. La syntaxe se présente sous une seule forme :

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

Le nom du compteur `<var-name>` est obligatoire. Ce nom doit être différent de ceux des variables déclarées précédemment. La portée du compteur se limite au corps de la boucle. Dans la boucle, vous ne pouvez ni modifier la valeur du compteur ni déclarer une variable portant le même nom.

Les valeurs initiale `<from-expr>` et finale `<to-expr>` du compteur sont évaluées avant la première itération de la boucle. Elles sont ensuite traitées comme des constantes entières afin d’éviter les boucles sans fin.

Le paramètre `step` est facultatif. Si la valeur de `step` n’est pas spécifiée, le pas est considéré comme égal à 1. La valeur du pas, ainsi que les valeurs initiale et finale du compteur, sont évaluées une seule fois au début de la boucle.

Le signe du pas détermine la condition d’itération :

* Pour les valeurs positives du pas, la condition `<var-name> ≤ <to-expr>` doit être satisfaite.
* Pour les valeurs négatives du pas, la condition `<var-name> ≥ <to-expr>` doit être satisfaite.

La valeur du pas ne peut pas être nulle. Sinon, un message d’erreur s’affiche.

L’élément `<statement>` peut être une instruction unique ou un bloc (instruction composée) entre accolades.

Vous pouvez également utiliser les instructions suivantes dans la boucle :

* `break` – Interrompt la boucle.
* `continue` – Passe à l’itération suivante de la boucle.
