Как остановить цикл в паскале

от admin

Оператор break на языке Паскаль

Циклы не прекращаются, пока условие в скобках не будет равно false. Однако часто случается так, что итерации циклов необходимо контролировать и в языке Паскаль для этого есть несколько операторов: break, continue, goto и exit. Рассмотрим их по подробнее и разберемся как можно контролировать процесс повторяющегося цикла.

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

Оператор goto

Оператор goto работает в связке с метками. Синтаксис этого оператора следующий: goto имя метки; Здесь указывается — перейти на то место кода, где установлена метка. Оператор goto указывает на какую метку нужно перейти, которая может быть установлена в любом участке кода.

Пример:

label go_here; // объявляем метку для оператора goto
var digit: real;

begin
go_here: // устанавливаем метку — сюда будет возвращаться алгоритм
write (‘Введите цифру: ‘);
readln (digit);

if digit 2 then goto here; // переход на метку
end;
end.
//Вывод: 0123012301230123… и так до бесконечности

Здесь если пользователь вводит число меньше нуля, то программа снова запрашивает у него ввод цифры. Это будет происходить до тех пор, пока пользователь не введет число равное нулю или больше.

Оператор continue

Данный оператор предназначен для пропуска итераций в цикле. Если итераций предусмотрено 5, то с помощью continue их можно уменьшить на определенное количество.

Пример:

var
digit, total: real;
i: integer;

begin
digit := 0;

for i := 1 to 8 do begin
write (‘Введите цифру: ‘);
readln (digit);
if digit 8 then continue;
write(i);
end;
end.
// Вывод: 9 10 11 12 13 14 15

Оператор exit

Оператор exit служит для принудительного выхода из блока кода и возвращения в основной поток алгоритма. Если его поставить в основном потоке, то принудительно будет завершена основная программа.

Пример:

var
chislo: integer;

begin
write(‘Введите любое число ‘);
readln(chislo);
if chislo

Как остановить цикл в паскале

Ходом выполнения цикла можно управлять с помощью двух операторов break и continue.

break – прерывает выполнение цикла, управление передается операторам, следующим за оператором цикла.

continue – прерывает выполнение очередного шага цикла и возвращает управление в начало цикла, начиная следующий шаг.

Данная программа будет печатать только нечетные числа (из-за срабатывания continue). Цикл прекратит выполняться, когда n станет равно 7. В итоге будут напечатаны числа: 1, 3, 5.

Процедура Break

Процедура Break в Паскале выполняет прерывание цикла. Синтаксис:

Процедура Break выполняет переход к оператору, следующему после текущего блока цикла.

Код после вызова Break и окончанием блока цикла не выполняется. Состояние текущего цикла при этом прекращает отслеживаться.

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

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

Как прервать цикл в Паскале

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

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

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

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

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

Читать:
Приложение где можно соединить фото двух людей

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

Циклы. Операторы цикла for , while-do , repeat-until . Операторы завершения цикла break , continue

Иногда алгоритм решения задачи может быть реализован таким образом, что нужно выполнять одни и те же операции несколько раз. Алгоритм, в котором определенная последовательность команд повторяется несколько раз называется циклическим.

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

2. Какие есть виды операторов цикла в языке Паскаль?

В языке Паскаль предусмотрено три разновидности операторов цикла:

  • цикл с параметром ( for-to-do );
  • цикл с предусловием ( while-do );
  • цикл с послеусловием ( repeat-until ).
3. Какой общий вид оператора цикла с параметром for ?

Цикл с параметром имеет два варианта реализации.

Вариант 1. Общий вид цикла с параметром:

где Счетчик – переменная перечислительного типа, которая в цикле имеет шаг прироста равный 1 ; НачальноеЗначение – начальное значение параметра Счетчик ; КонечноеЗначение – конечное значение параметра Счетчик .

Если НачальноеЗначение больше за КонечноеЗначение , то инструкции между begin и end не выполняются. Если между begin и end есть лишь одна инструкция (оператор), то ключевые слова begin и end можно опустить.

Вариант 2. Общий вид цикла с параметром:

В этом случае значение параметра Счетчик не возрастает на 1 , а уменьшается на 1 (шаг изменения равен -1 ).

Пример применения оператора цикла с параметром.

Составить программу для вычисления факториала. Факториал вычисляется по следующей формуле:

n! = 1 * 2 * 3 * … * n.

4. Какой вид имеет оператор цикла с предусловием while-do ?

Общий вид оператора цикла с предусловием:

Пример применения оператора цикла с предусловием. Фрагмент кода, в котором осуществляется вычисление суммы:

S = 2 + 4 + 6 + … + 200

5. Какой вид имеет оператор цикла с постусловием repeat-until ?

Общий вид оператора цикла с постусловием:

Операторы, размещенные между ключевыми словами repeat и until будут выполняться до тех пор, пока логическое выражение, указанное после until , не примет значение true .

6. Пример вычисления суммы с помощью различных операторов цикла.

Задача.

С помощью оператора цикла вычислить сумму:

S = 1 + 2 + … + 100

Решение 1. Использование оператора цикла с параметром for .

Решение 2. Использование оператора цикла с предусловием while .

Решение 3. С помощью оператора цикла с постусловием repeat .

7. Какие есть операторы завершения цикла?

Для всех операторов цикла выход из цикла осуществляется как вследствие естественного завершения оператора цикла, так и с помощью операторов перехода и выхода.

В стандартном Паскале определены стандартные операторы Break и Continue .

Оператор Break выполняет безусловный выход из цикла. Оператор Continue обеспечивает переход к началу новой итерации цикла.

8. Пример использования оператора break .

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

Фрагмент программного кода, который определяет наличие заданного элемента в массиве m1 . Значение элемента описывается в переменной x . Если элемент есть, то нецелесообразно осуществлять поиск в массиве дальше. В этом случае используется есть операция break .

9. Пример использования оператора continue .

Инструкция continue используется, если нужно остановить текущую итерацию и перейти к следующей итерации.

Пример фрагмента кода, который множит на 2 все положительные элементы массива m1 из 100 целых чисел. Если встречается отрицательный элемент, то он пропускается.

Похожие статьи