Previous Topic Next topic Print topic


Iterators - in COBOL and

Iterators in Managed COBOL

class-id sillyCount.
working-storage section.
01 c binary-long value 1 static.

method-id main static.
01 i binary-long.
procedure division using by value cmds as string occurs any.
    *> Use perform to loop over an iterator
    perform varying i through self::doCount()
        display i
    end-perform
end method.
           
*> Create an iterator by defining a member as an iterator
*> Using iterator-id instead of method-id
iterator-id doCount static.
    *> The return value if the iterator is defined using the
    *> yielding keyword
procedure division yielding j as binary-long.
    perform until false
        add 1 to c
        move c to j
        *> Until the iterator is stopped, it will yield on
        *> a goback verb
        goback

        *> then start again directly after the goback 
        *> on the next invocation of the iterator
        multiply c by 10 giving j
        if c less then 50 
            goback
        else
            *> Stop iterator - as it says
            *> Control goes back to the calling routine.
            stop iterator
            goback
       end-if
    end-perform
    *> COBOL will implicitly stop iterator at the 
    *> end of the iterator definition. 
    *> In this example – the code never gets here.
end iterator.
end class.
Previous Topic Next topic Print topic