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

# arc:check

> アトリビュートの有無をチェックする、またはブール式を評価し、条件が満たされた場合にのみボディブロックを実行します。

export const siteNameShort = "Arc";

`arc:check` キーワードは、**value** パラメータの有無にかかわらず使用します。値パラメータがない場合は、`arc:check` のボディが実行される前に、アトリビュートがアイテムの中に存在しnull 文字列ではないことを確認します。

値パラメータを指定した場合は、`arc:check` ボディはエクスプレッションがtrue と評価された場合のみ実行します。他の値はfalse となります。評価では、大文字と小文字を区別しません。

他の{siteNameShort}Script のシンプルな条件文と同様に、`arc:check` は[arc:else](./op-arc-else) キーワードとペアで使うことができます。

<Note>[arc:equals](./op-arc-equals) とは異なり、`arc:check` はアイテムにアトリビュートが存在しない場合でも例外をスローしません。</Note>

## パラメータ

* **item**：アトリビュートをチェックするアイテム。アイテムの指定は必須ではありません。アイテムが指定されていない場合は、デフォルトのアウトプットアイテムが使われます。
* **attr**：チェックするアトリビュートの名前。このパラメータは必須です。
* **value**：`true` または`false` と評価されるエクスプレッション。例えば、true もしくはfalse を返すフォーマッタの結果です。
* **action**：エクスプレッションが`true` と判断された場合に実行されるアクション。使用できる値は、`break` および`continue` です。

## アトリビュートの制御

None

## 例

**アイテムにアトリビュートがあるかどうかをチェックする**

この例は、`arc:check` を使用して、`result` アイテムに`number` アトリビュートが存在するかどうかを確認します。true の場合、メッセージにヘッダーが追加されます。そうでない場合は、エラーが発生します。

```xml theme={null}
<arc:set attr="result.number" value="95" />

<!-- Check that the number attribute exists on the result item first. -->
<arc:check attr="result.number">
  <!-- If true, add a header. -->
  <arc:if exp="[result.number | lessthan(100)]">
    <arc:set attr="out.header:numberlessthan100" value="true" />
    <arc:set attr="out.filepath" value="[filepath]" />
    <arc:push item="out" />
    <!-- Else, throw an error. -->
    <arc:else>
      <arc:throw code="HighValue" desc="The target value was above the desired value of 100." />
    </arc:else>
  </arc:if>
</arc:check>
```

**列挙中に値をチェックする**

この例は、1から10までの範囲を列挙し、`arc:check` を使用して反復値を確認します。5に等しい場合は、列挙を終了します。値が5に等しくない場合は、データを含むファイルを作成し、そのファイルを出力としてプッシュします。

```xml theme={null}
<arc:enum range="1..10">
  <!-- Check the current iteration and break if it is equal to 5. -->
  <arc:check value="[_value | equals(5)]" action="break" />
  <!-- For iterations not equal to 5, create a file and push it as output. -->
  <arc:setm item="out">
    FileName=Result_[_value].txt
    Data=The enumeration value is [_value].
  </arc:setm>
  <arc:push item="out" />
</arc:enum>
```

## 関連項目

* [arc:exists](./op-arc-exists)：アトリビュートが存在するかどうかをチェックする。
* [arc:equals](./op-arc-equals)：同じ値かどうかをチェックする。
* [arc:notequals](./op-arc-not-equals)：同じ値ではないかどうかをチェックする。
