in reply to What's the difference between 'redo' and 'goto'?

The difference is that "redo LOOP" expects "LOOP" to be a label assigned to a loop (by placing the label right before the start of the loop) while "goto LOOP" just expects "LOOP" to be a 'nearby' label.

Since you don't tell us what that first "..." really is, I can't say whether "LOOP:" is right before the start of a loop. However, your indentation makes me suspect that, if your "LOOP:" is right before the start of a loop construct, then your "redo LOOP" is not inside of that loop (the other requirement for 'redo').

My testing shows that 'Label not found for "redo LOOP"' is the result for both cases (using a label that is not assigned to a loop or using 'redo' outside of the named loop).

- tye        

  • Comment on Re: What's the difference between 'redo' and 'goto'? (label location)

Replies are listed 'Best First'.
Re: Re: What's the difference between 'redo' and 'goto'? (label location)
by Eyck (Priest) on Mar 12, 2004 at 07:33 UTC
    Thanks, you're right. The code looked like this:
    LOOP: while (...) { } redo LOOP if (stuff);

    This check used to be in the middle of the loop. I guess it just shows that one should always take a step back even before making this teeeny-tiny change to a code.