Doing a serial search (SEARCH)
Use the SEARCH
statement to do a serial
(sequential) search beginning at the current index setting. To modify
the index setting, use the SET
statement.
About this task
The conditions
in the WHEN
phrase are
evaluated in the order in which they appear:
- If none of
the conditions is satisfied, the index is increased
to correspond to the next table element, and the
WHEN
conditions are evaluated again. - If one of the
WHEN
conditions is satisfied, the search ends. The index remains pointing to the table element that satisfied the condition. - If the entire table has been searched
and no conditions were met,
the
AT END
imperative statement is executed if there is one. If you did not codeAT END
, control passes to the next statement in the program.
You
can reference only one level of a table (a table element) with each SEARCH
statement.
To search multiple levels of a table, use nested SEARCH
statements.
Delimit each nested SEARCH
statement with END-SEARCH
.
Performance: If
the found condition comes after some intermediate point in the table,
you can speed up the search by using the SET
statement
to set the index to begin the search after that point. Arranging the
table so that the data used most often is at the beginning of the
table also enables more efficient serial searching. If the table is
large and is presorted, a binary search is more efficient.