cobol中的search语句怎么使用

avatar
作者
猴君
阅读量:3

在COBOL中,SEARCH语句用于在一个有序表中查找特定的数据项。

SEARCH语句的一般语法如下:

SEARCH <table> AT END <end-statement> WHEN <condition-1> <perform-statement-1> WHEN <condition-2> <perform-statement-2> ... WHEN <condition-n> <perform-statement-n> END-SEARCH 

其中,<table>是需要查找的有序表,可以是一个数组或一个带有索引的表。<end-statement>是当查找到达表尾时执行的语句,可以是任意合法的COBOL语句。

<condition-1>, <condition-2>, …, <condition-n>是用来指定搜索条件的条件语句。每个条件语句后面都跟着一个相应的<perform-statement>,用于指定在满足该条件时需要执行的语句。在执行时,SEARCH语句会按照条件的顺序依次检查每个条件,直到找到匹配的条件为止。

以下是一个使用SEARCH语句的示例:

01 Names-Table. 05 Name OCCURS 10 TIMES. 10 Name-Value PIC X(20). 01 Search-Name PIC X(20). PROCEDURE DIVISION. PERFORM INITIALIZATION. PERFORM SEARCH-NAME. INITIALIZATION. MOVE "John" TO Name-Value(1) MOVE "Mary" TO Name-Value(2) MOVE "David" TO Name-Value(3) ... MOVE "Alice" TO Name-Value(10). SEARCH-NAME. MOVE "John" TO Search-Name. SEARCH Names-Table AT END DISPLAY "Name not found." WHEN Name-Value(I) = Search-Name DISPLAY "Name found at index " I EXIT. 

在上面的示例中,我们定义了一个名为Names-Table的有序表,并初始化了其中的数据项。然后,我们使用SEARCH语句来在Names-Table中搜索名为"John"的数据项。在搜索过程中,我们使用了一个条件WHEN Name-Value(I) = Search-Name来指定搜索条件,当找到匹配的数据项时,显示相应的信息并退出搜索。

请注意,Name-Value(I)中的I是一个控制变量,用于在搜索过程中逐个检查每个数据项。在实际使用时,您需要根据具体情况来定义和使用相应的有序表和条件语句。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!