in 演算子

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

構文

in 演算子の構文図
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"};
表 1. in 演算子の効果
論理式 式の値 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 演算子の結果を示すものです。

表 2. 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 番目の索引が、検索を実行できる列数より大きく設定されている

互換性

表 3. in 演算子の互換性に関する考慮事項
プラットフォーム 問題
JavaScript 生成 in 演算子はサポートされていません。

フィードバック