in 演算子
in 演算子は、DataTable 内の配列または列の値を検索します。値が見つかった場合、式の評価結果は TRUE になり、sysVar.arrayIndex システム変数は、その値を含む要素の索引に設定されます。値が見つからなかった場合、式の評価結果は FALSE になり、sysVar.arrayIndex はゼロに設定されます。
構文

- searchValue
- 式。
- array
- 1 次元配列、または多次元配列の 1 要素。
- dataTableColumn
- DataTable パーツ内の列の名前。 in 演算子は、列が 1 次元の配列であるかのようにその列と対話します。
- start
- 整数、または整数に解決される式。 start の値は、searchValue を検索する最初の要素の索引を指定します。 start の値が配列内の要素数より大きい場合、式の評価結果は FALSE になり、sysVar.arrayIndex はゼロに設定されます。in 式に from start が含まれていない場合、検索は、配列または列の最初の要素から開始されます。 (EGL 配列添字は 0 ではなく、1 から開始されます。)
例
次の表は、myArray という文字配列を参照した場合の
in 演算子の結果を示すものです。文字配列は以下のように定義されています。
myArray CHAR(1)[3] {"A", "B", "C"};
| 論理式 | 式の値 | sysVar. ArrayIndex の値 | コメント |
|---|---|---|---|
| "A" in myArray | true | 1 | |
| "C" in myArray from 2 | true | 3 | 検索は 2 番目の要素 ("B") から開始される |
| "A" in myArray from 2 | false | 0 | 検索は 2 番目の要素 ("B") から開始される |
次の例では、myArray01D はストリングの 1 次元配列であり、
以下のように定義されています。
myArray01D STRING[] = ["ABC", "DEF", "GHI"];
また、myArray02D は 2 次元配列であり、各要素 (myArray02D[1,1] など) には 1 文字が含まれています。
この配列は以下のように定義されています。myArray02D CHAR(1)[3][3] = [["A", "B", "C"],
["D", "E", "F"],
["G", "H", "I"]];
次の表は、myArray02D での in 演算子の結果を示すものです。
| 論理式 | 式の値 | sysVar. ArrayIndex の値 | コメント |
|---|---|---|---|
| "DEF" in myArray01D | true | 2 | |
| "C" in myArray02D[1] | true | 1 | |
| "I" in myArray02D[3] from 2 | true | 3 | 検索は 3 行目の 2 番目の要素から開始される |
| "G" in myArray02D[2] from 2 | false | 0 | 検索は、調査されている行の最後の要素で終了する |
| "G" in myArray02D[2] from 4 | false | 0 | 2 番目の索引が、検索を実行できる列数より大きく設定されている |
互換性
| プラットフォーム | 問題 |
|---|---|
| JavaScript 生成 | in 演算子はサポートされていません。 |