Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

ФермаКактусов Высший разум (215180), открыт 1 день назад
3 ответа
Андрей Высший разум (464982) 1 день назад
Ничем не уникален. Цикл с постусловием придуман задолго до появления Pascal.

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

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

P.S. Pascal создавался как язык структурного программирования, один из принципов которого: каждый оператор имеет единственную точку входа и единственную точку выхода. Но break создаёт множество точек выхода из цикла и тем самым нарушает этот принцип.
Krab Bark Искусственный Интеллект (296172) 1 день назад
Не уникален. Однако for годился без ухищрений только для целых с шагом 1 и количество повторений задавалось перед их началом, а вот while по применимости был таким же, как repeat.. until, даже чуть универсальнее, так как проверка осуществлялась перед первым выполнением цикла.
Jurijus Zaksas Искусственный Интеллект (449365) 1 день назад
В самом паскале он был уникален в том смысле, что не требовал логических скобок.
А такое жесткое деление на циклы с предусловием, постусловием и счетчиком, было обусловлено тем, что в паскале реализация цикла со счетчиком была крайне жесткой: он работал только на инкремент или декремент перечислимых и целочисленных типов. Если типы были какими-то другими, или нужен был какой-то отличный от инкремента/декремента шаг, надо было работать и с другими циклами.
Похожие вопросы