SEARCH
Serial Search
COBOL
JAVA
SEARCH
for (; <index> <= <occurs>; <index> += 1) {
if (<condition>) {
<code>;
}
}
Syntax
for (; < index > <= < occurs >; < index > += 1 ) {
if (< condition1 >) {
< code1 >;
}
[ if (< condition2 >) {
< code2 >;
}]
[ ... ]
}
Parameters
<index>
The index variable of the table or VARYING clause variable.
<occurs>
The value of the occurs clause of the table.
<condition1..N>
The conditional expressions for the search.
<code1..N>
The imperative statements to be executed if the condition is met.
Ending code
The code should always end with a break, goto, return or throw statement.
Examples
COBOL
Java
SEARCH T-Table
WHEN T-DATA IS " Hello World "
MOVE T-Table TO SEARCHRESULT .
for (; locDef . t . getIntValue () <= 9 ; locDef . t . add ( 1 )) {
if ( locDef . t_Data . get ( locDef . i . getIntValue ()). equalTo ( "Hello World" )) {
locDef . searchresult . assign ( locDef . t_Table . get ( locDef . i . getIntValue ()));
break ;
}
}
SEARCH T-Table VARYING Z
WHEN T-DATA IS " Hello World "
NEXT SENTENCE
WHEN T-DATA IS " Foobar "
DISPLAY " result found "
END-SEARCH .
for (; locDef . z . getIntValue () <= 9 ; locDef . z . add ( 1 )) {
if ( locDef . t_Data . get ( locDef . i . getIntValue ()). equalTo ( "Hello World" )) {
jumpToLabel = Label_NextSentence_1 ; // NEXT SENTENCE
continue mainLoop ;
}
if ( locDef . t_Data . get ( locDef . i . getIntValue ()). equalTo ( "Foobar" )) {
display ( "result found" );
break ;
}
locDef . i . getIntValue () += 1 ;
}
Binary Search
COBOL
JAVA
SEARCH ALL
for (<index> = 1; <index> <= <occurs>; <index> += 1) {
if (<condition>) {
<code>;
}
}
Syntax
for (< index > = 1 ; < index > <= < occurs >; < index > += 1 ) {
if (< condition1 >) {
< code1 >;
}
[ if (< condition2 >) {
< code2 >;
}]
[ ... ]
}
Parameters
<index>
The index variable of the table or VARYING clause variable.
<occurs>
The value of the occurs clause of the table.
<condition1..N>
The conditional expressions for the search.
<code1..N>
The imperative statements to be executed if the condition is met.
Ending code
The code should always end with a break, goto, return or throw statement.
Examples
COBOL
Java
SEARCH ALL T-Table
WHEN T-DATA IS EQUAL " Hello World "
MOVE T-Table TO SEARCHRESULT .
for ( m_LocDef . T_Idx . Value = 1 ; m_LocDef . T_Idx . Value <= 9 ; m_LocDef . T_Idx . Value += 1 ) {
if ( m_LocDef . T_Data . Value == "Hello World" ) {
m_LocDef . Searchresult . Value = m_LocDef . T_Table . Value ;
break ;
}
}
for ( locDef . t . getIntValue () = 1 ; locDef . t . getIntValue () <= 9 ; locDef . t . add ( 1 )) {
if ( locDef . t_Data . get ( locDef . t . getIntValue ()). equalTo ( "Hello World" )) {
locDef . searchresult . assign ( locDef . t_Table . get ( locDef . t . getIntValue ()). getValue ());
break ;
}
}
SEARCH T-Table VARYING Z
WHEN T-DATA IS " Hello World "
NEXT SENTENCE
WHEN T-DATA IS " Foobar "
DISPLAY " result found "
END-SEARCH .
for (; locDef . z . getIntValue () <= 9 ; locDef . z . add ( 1 )) {
if ( locDef . t_Data . get ( locDef . i . getIntValue ()). equalTo ( "Hello World" )) {
jumpToLabel = Label_NextSentence_1 ; // NEXT SENTENCE
continue mainLoop ;
}
if ( locDef . t_Data . get ( locDef . i . getIntValue ()). equalTo ( "Foobar" )) {
display ( "result found" );
break ;
}
locDef . i . getIntValue () += 1 ;
}
Binary Or Serial Search with AT END
COBOL
JAVA
SEARCH [ALL] ... AT END
for ([<index> = 1]; <index> <= <occurs+1>; <index> += 1) {
if (<index> > <occurs>) {
<code_at_end>;
}
if (<condition>) {
<code>;
}
}
Syntax
for ([< index > = 1 ]; < index > <= < occurs + 1 >; < index > += 1 ) {
if (< index > > < occurs >) {
< code_at_end >;
}
if (< condition1 >) {
< code1 >;
}
[ if (< condition2 >) {
< code2 >;
}]
[ ... ]
}
Parameters
<index>
The index variable of the table or VARYING clause variable.
<occurs+1>
The value of the occurs clause of the table plus one.
<occurs>
The value of the occurs clause of the table.
<code_at_end>
The imperative statements to be executed at the end of the search.
<condition1..N>
The conditional expressions for the search.
<code1..N>
The imperative statements to be executed if the corresponding condition is met.
Ending code
The code should always end with a break, goto, return or throw statement.
Examples
COBOL
Java
SEARCH T-Table AT END DISPLAY " Not found "
WHEN T-DATA IS " Hello World "
MOVE T-Table TO SEARCHRESULT .
for (; locDef . t_Idx . getIntValue () <= 10 ; locDef . t . add ( 1 )) {
if ( locDef . t . getIntValue () > 9 ) {
display ( "Not found" );
break ;
}
if ( locDef . t_Data . get ( locDef . t . getIntvalue () == "Hello World" )) {
locDef . searchresult . assign ( locDef . t_Table . get ( locDef . t . getIntValue ()). getValue ());
break ;
}
}
SEARCH ALL T-Table AT END DISPLAY " Not found "
WHEN T-DATA EQUAL " Hello World "
AND T-data2 equal " Foobar "
MOVE T-Table TO SEARCHRESULT .
for ( locDef . t_Idx . assign ( 1 );
locDef . t_Idx . getIntValue <= 10 ;
locDef . t_Idx . assign ( 1 )) {
if ( locDef . t . getIntValue > 9 ) {
display ( "Not found" );
break ;
}
if ( locDef . t_Data . get ( locDef . t . getIntValue ). equalTo ( "Hello World" ) &&
locDef . t . Data2 . get ( locDef . t . getIntValue ()). equalTo ( "Foobar" )) {
locDef . searchresult . assign ( locDef . t_Table . get ( locDef . t . getIntValue ()));
break ;
}
}