Раздел: Стандартные функции Паскаля
Процедура Continue
|
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее... |
Процедура 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, а ваша собственная процедура, объявленная в начале программы, которая не выполняет никаких действий.
|
Вступить в группу "Основы программирования"
Подписаться на канал в РУТУБ Подписаться на Дзен-канал Подписаться на рассылки по программированию |
|
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее... |
|
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее... |