Rexx - 数组

任何编程语言中的数组都允许您对相同类型的值列表进行分组。 数组的用途在于它允许您构建相似类型值的列表,这些值可排序、可搜索并且可以轻松操作。 Rexx 还允许定义数组。 这些数组可以是一维或多维的。

Rexx 数组可能比较稀疏。 也就是说,并非每个数组位置都必须有一个值,甚至不需要初始化。 在包含数据元素的数组位置之间可以有空的数组位置或槽。 或者数组可以是密集的,其中连续的数组槽都包含数据元素。

在许多编程语言中,您必须关心表中第一个条目的下标是什么。 第一个数字下标是0还是1? 在 Rexx 中,第一个下标是您使用的任何内容! 因此,根据您的喜好将第一个数组元素输入位置 0 或 1。

array_name.0 = ‘first element’

or

array_name.1 = ‘first element’

让我们看看可用于数组的不同操作。

创建数组

数组是使用与 Rexx 中的变量相同的命名约定创建的。

创建数组的一般语法如下 −

Arrayname.index = value 

其中

  • Arrayname − 这是提供给数组的名称。

  • Index − 这是数组中引用特定元素的索引位置。

  • Value − 这是分配给数组中索引元素的值。

数组声明的示例如下 −

示例

/* 主程序 */
list.1 = 0 
list.2 = 0 
list.3 = 0

上述程序需要注意以下几点 −

  • 数组的名称以列表形式给出
  • 数组中有 3 个元素,初始化值为 0。

为数组元素赋值

可以按照与初始化数组元素相同的方式将值重新分配给数组元素。

以下程序是可分配给现有数组的各种索引值的值的示例。

/* 主程序 */
list.1 = 0 
list.2 = 0 
list.3 = 0 

/* 为数组分配新值 */ 
list.1 = 10 
list.3 = 30 

显示数组的值

数组的值可以通过引用数组元素的索引位置来显示。 以下示例显示如何访问数组的各个元素。

示例

/* 主程序 */
list.1 = 0 
list.2 = 0 
list.3 = 0 

/* 为数组分配新值*/ 
list.1 = 10 
list.3 = 30 
say list.1 
say list.2 
say list.3 

上述程序的输出如下 −

10
0
30

复制数组

一个数组的所有元素都可以复制到另一个数组中。 其一般语法如下 −

Newarray. = sourcearray. 

其中

  • Newarray − 这是需要将元素复制到其中的新数组。

  • Sourcearray − 这是需要从中复制元素的源数组。

以下程序显示了如何执行数组复制操作的示例 −

示例

/* 主程序 */
list.1 = 0 
list.2 = 0 
list.3 = 0 

/* 为数组分配新值 */ 
list.1 = 10 
list.3 = 30 
listnew. = list. 

say listnew.1 
say listnew.2 
say listnew.3 

上述程序的输出将是 −

10
0
30

迭代数组元素

还可以使用 Rexx 中提供的迭代语句来迭代数组的元素。 有关如何完成此操作的示例如下 −

示例

/* 主程序 */
list.1 = 10 
list.2 = 20 
list.3 = 30 

number_of_elements = 3 
do j = 1 to number_of_elements 
say list.j 
end 

上述程序需要注意以下几点 −

  • do 循环用于迭代数组元素。

  • 变量number_of_elements用于存储数组中元素的数量。

  • 变量 j 用于迭代数组的每个元素。

上述程序的输出将是 −

10
20
30

二维数组

还提到我们可以在 Rexx 中构造多维数组。 让我们看一个如何实现二维数组的示例。

示例

/* 主程序 */
list.1 = 10 
list.1.1 = 11 
list.1.2 = 12 

say list.1 
say list.1.1 
say list.1.2 

上述程序的输出结果如下 −

10
11
12

上述程序需要注意以下几点 −

  • 要创建多维数组,我们可以使用另一层索引。 因此,在我们的示例中,我们使用 list.1.1 为列表数组的索引值 1 创建另一个内部数组。