运算符 in 是在具有下列格式的基本逻辑表达式中使用的二目运算符:
用作数组下标的项本身不能是数组元素。在下面的每个示例中,myItemB[1] 既是下标又是数组元素;因此,下列语法无效:
/* the next syntax is not valid */ myItemA[myItemB[1]] // this next syntax is not valid; but only // because myItemB is myItemB[1], the // first element of a one-dimensional array myItemA[myItemB]
对于一维数组和多维数组,搜索结束于正在查看的一维数组中的最后一个元素。
如果基本逻辑表达式解析为 true,则 in 运算将系统变量 sysVar.arrayIndex 设置为包含搜索值的元素的下标值。如果表达式解析为 false,则此运算将 sysVar.arrayIndex 设置为零。
structureItem name="myString" length=3 structureItem name="myArray" occurs=3 length=1
下表显示了运算符 in 的作用(假设 myString 为 "ABC")。
逻辑表达式 | 表达式的值 | sysVar. ArrayIndex 的值 | 注释 |
---|---|---|---|
"A" in myArray | true | 1 | 一维数组的下标缺省为 1 |
"C" in myArray[2] | true | 3 | 搜索从第二个元素开始 |
"A" in myArray[2] | false | 0 | 搜索结束于最后一个元素 |
structureItem name="myArray01D" occurs=3 length=3 structureItem name="myArray02D" occurs=3 length=1
在此示例中,myArray01D 是一维数组,每个元素都包含一个字符串,该字符串被子结构化为三字符数组。myArray02D 是一个二维数组,每个元素(例如 myArray02D[1,1])都包含一个字符。
"A" "B" "C" "D" "E" "F" "G" "H" "I"
下表显示了运算符 in 的作用。
逻辑表达式 | 表达式的值 | sysVar. ArrayIndex 的值 | 注释 |
---|---|---|---|
"DEF" in myArray01D | true | 2 | 引用一维数组不需要下标;缺省情况下,从第一个元素开始搜索 |
"C" in myArray02D[1] | — | — | 由于引用多维数组必须包括每个维的下标,所以此表达式无效 |
"I" in myArray02D[3,2] | true | 3 | 搜索从第三行第二个元素开始 |
"G" in myArray02D[3,2] | false | 0 | 搜索结束于正在查看的行的最后一个元素 |
"G" in myArray02D[2,4] | false | 0 | 第二个下标大于可供搜索的列数 |
相关任务
语法图
相关参考
数组
逻辑表达式
运算符和优先顺序
sysVar.arrayIndex