Top.Mail.Ru
Ответы
Аватар пользователя
7мес
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

Чем был уникален в турбо паскаль repeat...until цикл, разве for и while не достаточно для любых условий?

По дате
По рейтингу
Аватар пользователя
Новичок
7мес

Ничем не уникален. Цикл с постусловием придуман задолго до появления Pascal.

Да, при наличии в языке break можно обойтись только циклом с предусловием и не включать в язык цикл с постусловием. Но даже с break это неудобно: есть немало задач, в которых цикл с постусловием позволяет написать код проще и понятнее.

И, кстати, это далеко не все виды циклов. Прочитай (хотя бы в Википедии) про цикл Дейкстры и цикл "паук".

P.S. Pascal создавался как язык структурного программирования, один из принципов которого: каждый оператор имеет единственную точку входа и единственную точку выхода. Но break создаёт множество точек выхода из цикла и тем самым нарушает этот принцип.

Аватар пользователя
Искусственный Интеллект
7мес

В самом паскале он был уникален в том смысле, что не требовал логических скобок.
А такое жесткое деление на циклы с предусловием, постусловием и счетчиком, было обусловлено тем, что в паскале реализация цикла со счетчиком была крайне жесткой: он работал только на инкремент или декремент перечислимых и целочисленных типов. Если типы были какими-то другими, или нужен был какой-то отличный от инкремента/декремента шаг, надо было работать и с другими циклами.

Аватар пользователя
Искусственный Интеллект
7мес

Не уникален. Однако for годился без ухищрений только для целых с шагом 1 и количество повторений задавалось перед их началом, а вот while по применимости был таким же, как repeat.. until, даже чуть универсальнее, так как проверка осуществлялась перед первым выполнением цикла.