Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.03;
Скачать: CL | DM;

Вниз

Использование процедуры Break   Найти похожие ветки 

 
Anthony ©   (2011-01-06 02:50) [0]

Подскажите пожалуйста, почему испольование Break внутри нескольких циклов:

for i := 0 to 100
 for j := 0 to 100
   for k := 0 to 100
     Break;

- приводит к выпадению сразу из всех циклов, а не только из того цикла (в данном случае по k), в котором находится Break ?

Есть ли в Delphi какие-то опции компилятора, чтобы по Break прерывать только тот цикл, в котором вызвана эта процедура ?


 
Германн ©   (2011-01-06 03:25) [1]


> чтобы по Break прерывать только тот цикл, в котором вызвана
> эта процедура

Так оно и есть и всегда было. Ищи ошибку в программе.


 
KilkennyCat ©   (2011-01-06 09:56) [2]

continue  или goto


 
KilkennyCat ©   (2011-01-06 09:57) [3]


> опции компилятора

новый стиль программирования - переключений опций компилятора....


 
Юрий Зотов ©   (2011-01-06 10:06) [4]

> Anthony ©   (06.01.11 02:50)

Из справки:

You can use the standard Break and Continue procedures to control the flow of a repeat, while, or for statement. Break terminates the statement in which it occurs, while Continue begins executing the next iteration of the sequence.

В реальности так оно и есть, так что действительно ищите ошибку в программе.


 
Anatoly Podgoretsky ©   (2011-01-06 12:17) [5]

> Германн  (06.01.2011 03:25:01)  [1]

Ошибка только в мозгах, первые два цикла так быстро выполняются, что
кажется, что кажется.


 
Anthony ©   (2011-01-06 16:36) [6]

Да, извиняюсь, что-то видно я напутал в коде, не могу повторить это "недоразумение", которое каким-то образом ранее получил в своей программе, всё оказывается работает, как надо...
Но хорошо, что спросил, потому что до задания этого вопроса на форум - в голове осталась неверная информация, что Break прерывает сразу все циклы.

Благодарю всех, кто откликнулся помочь!..


 
Ega23 ©   (2011-01-06 17:20) [7]

Все циклы прерывает Exit или Goto :)


 
Halt   (2011-01-06 23:16) [8]

Все циклы прерываю я.


 
Rouse_ ©   (2011-01-07 10:07) [9]


> Ega23 ©   (06.01.11 17:20) [7]
>
> Все циклы прерывает Exit или Goto :)

Очень удачны бывают переходы в тело цикла DO, особенно из других модулей. Хотя трансляторы, как правило, это запрещают, их легко обвести вокруг пальца, пользуясь переменными типа метки. Передача управления в вызываемую процедуру в обход заголовка принесет Вам долгие часы счастливых раздумий над кодом завершения ОС5.


 
jack128_   (2011-01-07 15:11) [10]


> Очень удачны бывают переходы в тело цикла DO, особенно из
> других модулей. Хотя трансляторы, как правило, это запрещают,
>  их легко обвести вокруг пальца, пользуясь переменными типа
> метки. Передача управления в вызываемую процедуру в обход
> заголовка принесет Вам долгие часы счастливых раздумий над
> кодом завершения ОС5.


Пару лет эта цитата висит у нас в свн. Наконец она пригодилась!!! Ура!


 
oxffff ©   (2011-01-07 16:06) [11]


> Anthony ©   (06.01.11 02:50)  
> Подскажите пожалуйста, почему испольование Break внутри
> нескольких циклов


Очень удобно для выхода из нескольских циклов использовать отдельную вложенную процедуру(в которую вынесены циклы) с использованием exit в ней.


 
RWolf ©   (2011-01-07 16:07) [12]

хм, мне такое накодить даже в голову не приходило.
goto в процедуру, надо же.



Страницы: 1 вся ветка

Текущий архив: 2011.04.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1292536050
George
2010-12-17 00:47
2011.04.03
Delphi, PHP и md5


15-1292484895
wow
2010-12-16 10:34
2011.04.03
большие файлы и DVD плеер


15-1292779384
Германн
2010-12-19 20:23
2011.04.03
Анекдоты из жизни артистов МХАТ


15-1292349556
Baks
2010-12-14 20:59
2011.04.03
WordPress Drupal Joomla или самому ручками


6-1236190366
DimDim
2009-03-04 21:12
2011.04.03
Indy10 idFTP как разделить файлы и каталоги?