Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Continue, вложенный цикл.


Wood ©   (2006-11-14 06:08:00) 

Доброе утро!
Подскажите, плз, как продолжить вложенный цикл?
Такая конструкция у меня продолжила основной цикл:

While not <таблица>.Eof do
begin
 If <условие> then Continue;
 ...
  For i:=0 to Count do
   begin
     If <условие> then Continue; //выходит из цикла for и продолжает while
     ...
   end;
  <таблица>.Next
end;

возможно, я ошибаюсь, думая, что каждое Continue действительно для конкретного цикла...


Wood   (2006-11-14 07:08:00) [1]

тьфу, ну точно не доброе утро попалось :( Совсем не проснулся, MBo ©, прошу прощения за PS...


Wood   (2006-11-14 07:00:00) [2]


> MBo ©   (14.11.06 06:43) [1]

благодарю! Буду искать ошибку в своем коде.
PS: напомните, плз, где я могу посмотреть такое же:

>Start Outer 0
>Outer 0 After Continue
>Outer 0   Inner 10
...


> MikePetrichenko ©   (14.11.06 06:48) [2]
...
> Continue + F1

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


MikePetrichenko   (2006-11-14 06:49:00) [3]

Сорри. Не Exit, а, конечно же, Break+F1.
Спать охота. Чем и займусь...


MikePetrichenko   (2006-11-14 06:48:00) [4]


> If <условие> then Continue; //выходит из цикла for и продолжает
> while

А с чего бы оно выходитиз цикла?
Continue + F1
Exit + F1
И будет счастье


MBo   (2006-11-14 06:43:00) [5]

Все работает как положено:


procedure TForm14.Button1Click(Sender: TObject);
var
 i, j: Integer;
begin
 i := 0;
 while i < 3 do begin
   Memo1.Lines.Add(Format('Start Outer %d',[i]));
   if i = 1 then begin
     Inc(i);
     Continue;
   end;
   Memo1.Lines.Add(Format('Outer %d After Continue',[i]));
   for j := 10 to 12 do begin
     if j = 11 then
       Continue;
     Memo1.Lines.Add(Format('Outer %d   Inner %d',[i,j]));
   end;
   Memo1.Lines.Add(Format('Outer %d After Inner Cycle',[i]));
   Inc(i);
 end;


Start Outer 0
Outer 0 After Continue
Outer 0   Inner 10
Outer 0   Inner 12
Outer 0 After Inner Cycle
Start Outer 1
Start Outer 2
Outer 2 After Continue
Outer 2   Inner 10
Outer 2   Inner 12
Outer 2 After Inner Cycle


Наверх

Титульная страница Поиск, карта сайта Написать письмо