in 运算符

运算符 in 是在具有下列格式的基本逻辑表达式中使用的二目运算符:


运算符 in 的语法图
searchValue
文字或项,但不是系统变量。
array
一维或多维数组。运算符 in 对一维数组进行操作,该数组可以是多维数组的一个元素。
subscript
一个整数,或者是一个解析为整数的项(或系统变量)。下标的值是引用数组中的特定元素的下标(index)。

用作数组下标的项本身不能是数组元素。在下面的每个示例中,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]
dataTableItem
dataTable 项的名称。该项表示数据表中的一列。in 运算符与该列进行交互,就好象该列是一维数组一样。
如果生成的程序找到了搜索值,则逻辑表达式解析为 true。搜索从最后一个数组下标所标识的元素开始。如果 array 是一维数组,则最后一个下标是可选的并且缺省设置为 1。如果 array 是多维数组,则下列情况成立:

对于一维数组和多维数组,搜索结束于正在查看的一维数组中的最后一个元素。

在下列任何一种情况下,包含 in 的逻辑表达式解析为 false:

如果基本逻辑表达式解析为 true,则 in 运算将系统变量 sysVar.arrayIndex 设置为包含搜索值的元素的下标值。如果表达式解析为 false,则此运算将 sysVar.arrayIndex 设置为零。

有关一维数组的示例

假定结构项 myString 子结构化为一个有 3 个字符的数组:
  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 搜索结束于最后一个元素

有关多维数组的示例

假定数组 myArray01D 子结构化为一个有 3 个字符的数组:
  structureItem name="myArray01D" occurs=3 length=3
    structureItem name="myArray02D" occurs=3 length=1

在此示例中,myArray01D 是一维数组,每个元素都包含一个字符串,该字符串被子结构化为三字符数组。myArray02D 是一个二维数组,每个元素(例如 myArray02D[1,1])都包含一个字符。

如果 myArray01D 的内容是 "ABC"、"DEF" 和 "GHI",则 myArray02D 的内容如下所示:
  "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 第二个下标大于可供搜索的列数

相关任务
语法图

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.