阅读量: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
是一个控制变量,用于在搜索过程中逐个检查每个数据项。在实际使用时,您需要根据具体情况来定义和使用相应的有序表和条件语句。