1. 1

    I don’t think this is the right solution

    . . for  set zig=$order(^ZIG(zig)) do  quit:'zig
    . . . do takeOff(zig)
    . . . do move(zig)
    

    neither is

    for  set zig=$order(^ZIG(zig)) do
    . do takeOff(zig)
    . do move(zig)
    . quit:'zig
    

    If you don’t want to run takeOff or move with zig=”” and get an infinite loop you must write this code:

    for  set zig=$order(^ZIG(zig)) q:zig="" do
    . do takeOff(zig)
    . do move(zig)
    

    I prefer this way to write in MUMPS, simple and writeless

    F  S zig=$O(^ZIG(zig)) Q:zig=""  D
    . D takeOff(zig)
    . D move(zig)