On 10/12/2015 01:47 PM, Dmitry Boyarintsev wrote:
On Mon, Oct 12, 2015 at 1:35 PM, Ralf Quint <freedos...@gmail.com> wrote:

    Either the while loop is executed or it isn't, depending in the expression.
    I don't see an actual use case for any else/otherwise extension to it...

You probably want to reread python while-else implementation.
(https://docs.python.org/2/reference/compound_stmts.html)
"Else" becomes sort of "part of the loop". Thus if you break out of the loop,
"else" would not be executed.
However, if no break occurs "else" part would be executed.

that just doesn't make grammatical sense...

foo := 0;
while foo < 100 do
  inc(foo);
else
  dec(foo);
end


so, if foo is less than 100 we inc(foo)... if foo is not less than 100 we dec(foo)... that's the only way that an "else" can be read... either the boolean is true or /else/ it is false... only if it is false can the else portion be executed...

(#2) but then the question is does dec(foo) execute only once or does it execute as long as foo is greater than 100??

what i seem to see is pure laziness of a sort... folks too lazy to write an "if" or "if/else" statement and put the while inside...


foo := 0;
if foo < 100 then
  while foo < 100 do
    inc(foo);
else
  dec(foo);


OR depending on the answer of (#2) above...


foo := 0;
if foo < 100 then
  while foo < 100 do
    inc(foo);
  while foo > 100 do
    dec(foo);


or maybe this is the actual intent?


foo := 0;
if foo < 100 then
  while foo < 100 do
    inc(foo);
if foo > 100 then
  dec(foo);


seems like a pretty tough way to have foo equal to 99, eh? ;)

It might be a rare case where it's needed. (I cannot think of any), but to
achieve exactly the same functionality in Pascal either of two options should be
used.

1) make an extra check if break occurred.
[...]
2) use goto! :)

neither is needed at all in most cases and then not if they have proper logic in place ;)

--
 NOTE: No off-list assistance is given without prior approval.
       *Please keep mailing list traffic on the list* unless
       private contact is specifically requested and granted.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to