Согласие на обработку персональных данных.



22.10.2017
Добавлен раздел Статьи по С/С++.

03.10.2017
Новая книга 1001 вопрос начинающего программиста.

29.09.2017
Новое видео Использование очереди.

04.09.2017
Новая задача Программа вычисления суммы.

03.09.2017
Новое видео Стековый калькулятор и обратная польская запись.

Раздел: Стандартные функции Паскаля

Процедура Continue

Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...

Процедура Continue в Паскале выполняет переход к следующему циклу (точнее, переход к следующей итерации цикла, в котором эта процедура вызывается). Синтаксис:

procedure Continue;

Процедура Continue выполняет переход в конец блока кода, обозначенного операторными скобками цикла. То есть код между вызовом этой процедуры и концом цикла не выполняется, а происходит продолжение цикла, то есть выполнение следующей итерации. При этом заново выполняется проверка условия продолжения цикла.

Процедура Continue может использоваться с циклами FOR, REPEAT и WHILE.

Учтите, что Continue - это зарезервированное слово и оно не может быть переопределено.

Переход к следующей итерации цикла

Пример программы, которая использует процедуру Continue для прерывания текущей итерации цикла и перехода к следующей, приведён ниже:

program continueproc;

var i, j : byte;

//****************************************************************
// Так делать нельзя, потому что тогда выход из итерации цикла
// с помощью Continue не будет работать
//****************************************************************
{procedure Continue;
begin
end;}

begin

  //Будут выведены 9 чисел: 1..3, 5..10. Число 4 НЕ будет выведено
  for i := 1 to 10 do
    begin
      if i = 4 then Continue;
      Write(i:3);
    end;

  WriteLn;

  //Выход из итерации вложенного цикла
  for j := 11 to 15 do    //Цикл 1
    begin
      for i := 1 to 4 do //Вложенный цикл 2
        begin            //Число 2 никогда не будет выведено
          if i = 2 then
            Continue;     //Выход из вложенного цикла 2
          Write(i:3);     //но цикл 1 будет выполнен полностью !!!
        end;
      Write(j:3);
    end;

  WriteLn;

  //Выход из итерации основного цикла
  for j := 11 to 15 do    //Цикл 1
    begin
      if j = 13 then     //Число 13 не будет выведено
        Continue;        //Выход из итерации цикла 1

      //Следующий код будет выполнен 4 раза, а не 5
      //при j = 11, 12, 14, 15
      Write(j:3);
      for i := 1 to 4 do //Вложенный цикл 2
        begin            //Число 2 никогда не будет выведено
          if i = 2 then
            Continue;    //Выход из вложенного цикла 2
          Write(i:3);
        end;
    end;

  WriteLn;
  i := 0;
  //С циклом repeat это тоже работает
  repeat
    Inc(i);
    if i = 4 then Continue;
    Write(i:3);
  until i > 4;

  ReadLn;
end.

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

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

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

Однако, если вы её раскомментируете, то процедура Continue будет переопределена. Ошибки компиляции это не вызовет - программа будет создана.

Но стандартная процедура Continue не будет работать!!! То есть прервать текущую итерацию цикла с помощью процедуры Continue вы не сможете, потому что вызываться будет уже не стандартная процедура из модуля SYSTEM, а ваша собственная процедура, объявленная в начале программы, которая не выполняет никаких действий.


Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика