То и означает - -разобраться с результатами поиска - у нас возможно как минимум 2 варианта - 1. мы нашли искомый элемент 2 мы не нашли его (просмотрев ВСЕ элементы множества) - понятно, что идеологически это единый кусок... так я говорю про то, что использование ELSE в этом случае уродливо (если не сказать еще хуже...). А между тем вышеупомянутый паттерн.. весьма общий для ЯП в которых нет операторов безусловного перехода и выхода из цикла...
Реализация паттерна может быть различной и не требовать проверок после завершения цикла, например, это тоже поиск:
Result := NIL;
IF Start.value = Value THEN
Result := Start;
ELSIF Start # End
IF End.value = Value THEN
Result := End;
ELSE
End := End.prev;
WHILE ( Result = NIL ) & ( Start # End ) DO
Start := Start.next;
IF Start.value = Value THEN Result := Start END;
END;
END;
END;
Что касается ELSE ветки в конструкции WHILE в Сириусе, которая выполняется когда условие прохождения цикла становится ложным, то, видимо, придется обозвать ее как-то иначе, но удалять ее из языка не будем, потому что она органично завершает цикл, делая его целостной конструкцией.
В принципе, у новичков, которые приходят к нам, проблем с этой конструкцией не возникает, по крайней мере вчера я специально опросил несколько человек, которые работают у нас меньше года. Возможно, конечно, и такой вариант, что они говорят неправду, но код-то они пишут именн так, хотя никто не заставляет секцию ELSE использовать.