Главная страница
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.009 c
2-1294380604
mefodiy
2011-01-07 09:10
2011.04.03
Разница в представлении данных MySQL.User в D7 и D2010


15-1292448594
Юрий
2010-12-16 00:29
2011.04.03
С днем рождения ! 16 декабря 2010 четверг


2-1294230079
IStream
2011-01-05 15:21
2011.04.03
IStream


2-1294216275
zd
2011-01-05 11:31
2011.04.03
модальное окно


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