avva: (Default)
[personal profile] avva
(только программистам интересно, наверное)

Почему в процедуральных языках, как правило, нет оператора досрочного выхода из блока? Как break в C, но чтобы работал не только из циклов, а также внутри if-then или вообще любого блока.

Постоянно приходится делать глупые вложенные цепочки условий или некрасивые трюки типа while(1) и выполза по break'у (ну или, понятно, их аналоги в других языках).

Есть какая-то глубокая причина этому?

Date: 2003-04-12 06:29 am (UTC)
From: [identity profile] lvalien.livejournal.com
"Почему в процедуральных языках, как правило, нет оператора досрочного выхода из блока?"
Это "скрытый" оператор перехода. В некоторых из тех языков, в которых он есть (и даже есть полноценный оператор перехода), эти идеологические уступки стараются не афишировать :)
Если память мне не изменяет, то в фирменном учебнике по борландовскому паскалю примеры с операторами перехода отсутствовали (что не мешало существовать им самим в борландовской версии паскаля - или путаю?).

Date: 2003-04-12 07:30 am (UTC)
From: [identity profile] avva.livejournal.com
Проблема в том, что я не понимаю принципиальной разницы между оператором досрочного выхода из цикла и оператором досрочного выхода из блока. Тем более что второй симулируется с помощью первого и конструкции типа while(1), что на практике повсеместно и происходит.

Оба можно назвать "скрытыми операторами перехода" в одинаковой мере. Если есть первый, почему бы "за ту же цену" не предоставить второй?

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 30th, 2025 03:12 am
Powered by Dreamwidth Studios