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>; }] [ ... ] }
Parameter(s)
<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 expression(s) for the search.
<code1..N>
The imperative statement(s) to be executed if the condition is met.
Ending code |
---|
The code should always end with a break, goto, return or throw statement. |
Example(s)
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>; }] [ ... ] }
Parameter(s)
<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 expression(s) for the search.
<code1..N>
The imperative statement(s) to be executed if the condition is met.
Ending code |
---|
The code should always end with a break, goto, return or throw statement. |
Example(s)
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>; }] [ ... ] }
Parameter(s)
<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 statement(s) to be executed at the end of the search.
<condition1..N>
The conditional expression(s) for the search.
<code1..N>
The imperative statement(s) to be executed if the condition is met.
Ending code |
---|
The code should always end with a break, goto, return or throw statement. |
Example(s)
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; } } |