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

# 文

> FlexiLayout languageにおける文: 文の区切り、複合ブロック、if-then-elseによる条件分岐、breakとcontinueを含むforループ。

<div id="statement-separators">
  ## 文の区切り
</div>

文はセミコロン (`;`) で区切ります。

<div id="compound-statements">
  ## 複合文
</div>

1 つ以上の文を中かっこで囲むと、複合文になります。複合文は一般に「ブロック」と呼ばれます (FlexiLayout ブロックと混同しないでください) 。

<div id="conditional-statements">
  ## 条件文
</div>

コードを入力するセクションでは、条件付きの `if` 文を使用できます。

`if` 文は条件分岐を制御します。`if` 文の本体は、式の値が `true` の場合に実行されます。`if` 文の構文には 2 つの形式があります。

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

`if` 文は、どちらの形式でも式が評価されます。

1つ目の構文形式では、`expression` が `true` の場合、`statement` が実行されます。`expression` が `false` の場合、`statement` は実行されません。`else` を使用する2つ目の構文形式では、`expression` が `false` の場合に2つ目の `statement` が実行されます。

<div id="iteration-statements">
  ## 反復文
</div>

コード入力用の任意のセクションでは、反復 `for` 文を使用できます。

`for` 文はループを制御します。ループは、式の値が `true` である間実行されます。構文は次の 1 つです:

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

`<var-name>` カウンター名は必須です。この名前は、先に宣言された変数名と異なっていなければなりません。カウンターのスコープはループ本体です。ループ内では、カウンターの値を変更したり、カウンターと同じ名前の変数を宣言したりすることはできません。

初期の `<from-expr>` と最後の `<to-expr>` のカウンター値は、ループの最初の反復の前に評価されます。その後、無限ループを避けるために整数定数として扱われます。

`step` パラメーターは省略可能です。`step` の値が指定されていない場合、`step` は 1 と見なされます。`step` の値は、初期値および最終値とともに、ループの開始時に一度だけ評価されます。

`step` の符号によって反復条件が決まります。

* 正の `step` 値の場合、条件 `<var-name> ≤ <to-expr>` を満たす必要があります。
* 負の `step` 値の場合、条件 `<var-name> ≥ <to-expr>` を満たす必要があります。

`step` の値を 0 にすることはできません。そうしないと、エラーメッセージが表示されます。

`<statement>` には、1 つの文、または中かっこで囲まれたブロック (複合文) を指定できます。

ループ内では、次の文も使用できます。

* `break` – ループを終了します。
* `continue` – ループの次の反復に進みます。
