El operador in es un operador binario utilizado en una expresión lógica elemental que tiene el siguiente formato:
Un elemento utilizado como subíndice de una matriz no puede ser por sí mismo un elemento de matriz. En cada uno de los ejemplos siguientes, myItemB[1] es tanto un subíndice como un elemento de matriz; como resultado, la siguiente sintaxis no es válida:
/* la sintaxis siguiente no es válida */ myItemA[myItemB[1]] // esta sintaxis no es válida; pero sólo // debido a que myItemB es myItemB[1], el // primer elemento de una matriz unidimensional myItemA[myItemB]
En relación a las matrices tanto unidimensionales como multidimensionales, la búsqueda finaliza en el último elemento de la matriz unidimensional bajo revisión.
Si la expresión lógica elemental se resuelve en true, la operación in establece la variable de sistema sysVar.arrayIndex en el valor de subíndice del elemento que contiene el valor de búsqueda. Si la expresión se resuelve en false, la operación establece sysVar.arrayIndex en cero.
structureItem name="myString" length=3 structureItem name="myArray" occurs=3 length=1
La tabla siguiente muestra el efecto del operador in si myString es "ABC".
Expresión lógica | Valor de la expresión | Valor de sysVar. ArrayIndex | Comentario |
---|---|---|---|
"A" en myArray | true | 1 | El subíndice de una matriz unidimensional toma por omisión el valor 1 |
"C" en myArray[2] | true | 3 | La búsqueda empieza en el segundo elemento |
"A" en myArray[2] | false | 0 | La búsqueda finaliza en el último elemento |
structureItem name="myArray01D" occurs=3 length=3 structureItem name="myArray02D" occurs=3 length=1
En este ejemplo, myArray01D es una matriz unidimensional, cada uno de cuyos elementos contiene una serie que está subestructurada en una matriz de tres caracteres. myArray02D es una matriz bidimensional, cada uno de cuyos elementos (como por ejemplo myArray02D[1,1]) contiene un solo carácter.
"A" "B" "C" "D" "E" "F" "G" "H" "I"
La tabla siguiente muestra el efecto del operador in.
Expresión lógica | Valor de la expresión | Valor de sysVar. ArrayIndex | Comentario |
---|---|---|---|
"DEF" en myArray01D | true | 2 | Una referencia a una matriz unidimensional no requiere un subíndice; por omisión, la búsqueda empieza en el primer elemento |
"C" en myArray02D[1] | -- | -- | La expresión no es válida debido a que una referencia a una matriz multidimensional debe incluir un subíndice para cada dimensión |
"I" en myArray02D[3,2] | true | 3 | La búsqueda empieza en la tercera fila, segundo elemento |
"G" en myArray02D[3,2] | false | 0 | La búsqueda finaliza en el último elemento de la fila revisada |
"G" en myArray02D[2,4] | false | 0 | El segundo subíndice es mayor que el número de columnas disponibles para la búsqueda |
Tareas relacionadas
Diagrama de sintaxis para sentencias y mandatos EGL
Consulta relacionada
Matrices
Expresiones lógicas
Operadores y precedencia
arrayIndex