Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.04.03;
Скачать: [xml.tar.bz2];

Вниз

Использование процедуры 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
15-1293003399
Владимир П.
2010-12-22 10:36
2011.04.03
Акк. для UPSа


8-1211277723
GreyWolf
2008-05-20 14:02
2011.04.03
Получить серийник soundcard


15-1292621393
Юрий
2010-12-18 00:29
2011.04.03
С днем рождения ! 18 декабря 2010 суббота


2-1294227904
Curse
2011-01-05 14:45
2011.04.03
Не работает упреждающее объявление класса


15-1292975374
Германн
2010-12-22 02:49
2011.04.03
Кто-нибудь пользуется пунктом меню IDE "File- Print"?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский