Оператор 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 целых чисел. Если встречается отрицательный элемент, то он пропускается.