COBOL - 数组/表处理17 Mar 2025 | 5 分钟阅读 在 COBOL 中,数组被称为表。 数组是一种线性数据结构,它是相同数据类型的各个数据项的集合。 表的各项数据在内部进行排序。 表声明在数据部分,我们可以声明表,并且我们必须使用“Occurs”子句来定义表。 Occurs 子句用于指示数据名称定义的重复。 它只能与从 02 到 49 的级别号一起使用。 对于 Redefines,我们不能使用 Occurs 子句。 下面给出了单维和二维表的描述 一维表在一维表中,' Occurs '子句应仅在声明中指定一次。 语法 在这里,WS-TABLE 是包含表的组项,WS-A 命名了出现十次的表元素。 示例 让我们看一个单维表的例子 输出 ![]() 二维表二维表是通过两个数据元素的可变长度生成的。 语法 在这里,第一个 WS-A 数组可以出现 1 到 10 次,内部 WS-C 数组可以出现 1 到 5 次。 也就是说,对于每个 WS-A 条目,将有 5 个 WS-C 条目。 示例 让我们看一个二维表的例子 输出 ![]() 下标通过使用下标,我们可以检索表的各个元素。 下标的值将从 1 变化到表/数组出现的次数。 任何 +ve 数字都可以是下标值。 在数据部分,不需要任何下标声明。 它与 Occurs 子句一起自动形成。 示例让我们看一个例子来理解下标 输出 ![]() 索引我们也可以使用索引来访问表元素。 索引是从表的开头移动的元素。 我们需要用 Occurs 子句描述 INDEXED BY 子句来声明索引。 使用 SET 语句和 PERFORM VARYING 选项来更改索引值。 语法示例让我们看一个例子来理解表中的索引 输出 ![]() Set 语句Set 语句更改索引值。 它用于初始化、递增或递减索引值。 此语句可以与 search 和 search all 一起使用,以定位表中的元素。 语法示例让我们看一个 set 语句的例子 输出 ![]() 搜索这是一种线性搜索方法。 这用于定位表元素。 我们可以在已排序或未排序的表上执行搜索。 搜索仅用于通过索引短语声明的表。 这从索引的初始值开始。 如果找不到搜索到的项目,索引将自动增加 1,并将一直持续到表的末尾。 示例让我们看一个搜索的例子 输出 ![]() Search AllSearch All 是一种二分搜索方法。 这用于在表中查找元素。 表必须按Search All的排序顺序排列。 不需要初始化索引。 众所周知,在二分搜索方法中,表被分成两个半部分,它确定要搜索的元素存在于哪一半中。 此过程会重复,直到找到该元素或到达末尾。 示例让我们看一个 Search All 的例子 输出 ![]() 下一主题COBOL 文件处理 |
我们请求您订阅我们的新闻通讯以获取最新更新。