The SEARCH statement is used to search through tables and arrays in COBOL. It provides both sequential and binary search capabilities for finding specific values within data structures.
The SEARCH statement supports both sequential and binary search methods.
1234567891011121314151617181920212223242526272829303132333435363738* Basic SEARCH syntax SEARCH table-name WHEN condition statements WHEN condition statements AT END statements END-SEARCH * Complete example IDENTIFICATION DIVISION. PROGRAM-ID. SEARCH-EXAMPLE. DATA DIVISION. WORKING-STORAGE SECTION. 01 LOOKUP-TABLE. 05 TABLE-ENTRY OCCURS 10 TIMES. 10 CODE PIC X(3). 10 DESCRIPTION PIC X(20). 01 SEARCH-CODE PIC X(3). 01 FOUND-FLAG PIC X(1) VALUE 'N'. PROCEDURE DIVISION. MAIN-LOGIC. MOVE 'ABC' TO SEARCH-CODE PERFORM SEARCH-TABLE STOP RUN. SEARCH-TABLE. SEARCH TABLE-ENTRY WHEN CODE(SEARCH-INDEX) = SEARCH-CODE MOVE 'Y' TO FOUND-FLAG DISPLAY "Found: " DESCRIPTION(SEARCH-INDEX) AT END DISPLAY "Code not found" END-SEARCH.
SEARCH provides flexible table searching capabilities.
Examples of using the SEARCH statement in different scenarios.
123456789101112131415161718192021* Code lookup with SEARCH DATA DIVISION. WORKING-STORAGE SECTION. 01 STATE-CODES. 05 STATE-ENTRY OCCURS 50 TIMES. 10 STATE-CODE PIC X(2). 10 STATE-NAME PIC X(20). 01 INPUT-CODE PIC X(2). 01 FOUND-STATE PIC X(20). PROCEDURE DIVISION. LOOKUP-STATE. MOVE INPUT-CODE TO SEARCH-CODE SEARCH STATE-ENTRY WHEN STATE-CODE(SEARCH-INDEX) = INPUT-CODE MOVE STATE-NAME(SEARCH-INDEX) TO FOUND-STATE DISPLAY "State: " FOUND-STATE AT END DISPLAY "Invalid state code" END-SEARCH.
SEARCH enables efficient code lookup operations.
Understanding best practices ensures effective use of the SEARCH statement.
1. What is the primary purpose of the SEARCH statement in COBOL?
2. What type of data structure does SEARCH work with?
3. What happens when SEARCH finds a match?
4. What happens when SEARCH does not find a match?
5. Can SEARCH be used with both sequential and binary search?