Re: Идеологически правильный мегарулез
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 24.06.05 07:48
Оценка: -1 :)))
Данное сообщение посвящено объяснению практической ценности существования EXIT-а только в LOOP, но не в WHILE/REPEAT.

Пацак здесь
Автор: Пацак
Дата: 24.06.05
сформулировал общее мнение на этот счет:

...в обероне вообще до LOOP докатимся, как выяснилось. Можно конечно это рассматривать как идеологически правильный мегарулез, но как-то не воодушевляет...


Не смотря на "идеологически правильный мегарулез", народ требует объяснить, какую из этого можно получить практическую выгоду.

А вот, например, хотя бы и такую:

Мы можем выйти из нескольких вложенных WHILE/REPEAT циклов. Внешний цикл делаем LOOP-ным, а все вложенные циклы делаем WHILE/REPEAT-ными. Тогда EXIT прервет все циклы сразу. А вот если бы EXIT прерывал бы не только LOOP-ные циклы, но и все остальные, то из нескольких вложенных циклов (без goto или RETURN) выйти было бы (по быстрому) нельзя.
LOOP
  ...
  WHILE...
    ...
    REPEAT... (* много вложенных WHILE/REPEAT циклов *)
      ...
      WHILE...
        ...
        IF c THEN EXIT END; (* выход из всех циклов, на конец текущей LOOP-ной итерации *)
        ...          |
      END;           |
      ...            |
    UNTIL...;        |
    ...              |
  END;               |
  ...                |
END                  |
...---<--------------+



Конечно, если вложенные циклы, тоже LOOP-ные, то описанный тут механизм работать не будет (EXIT выведет только на конец ближайшего LOOP-а).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.