![](/user_photo/2706_HbeT2.jpg)
- •10. Архитектура персонального компьютера.
- •11. Описание языка Turbo Pascal
- •Среда разработчика Turbo Pascal 7.
- •Запуск программы
- •Окно среды разработчика
- •Основные команды и горячие клавиши
- •Шестнадцатиричные и восмеричные константы
- •Строковые константы
- •Специальные символьные константы
- •18. Функция
- •Разветвляющийся вычислительный процесс
- •23. Вложенные циклы
- •26. Организация циклов с помощью оператора do - while
- •28. Оператор безусловного перехода goto
- •29. Операторы break и continue
- •32. Оператор выбора case
- •2.2 Блок-схема.
- •2.3 Структуры алгоритмов.
- •36. Ввод массива в Паскале
- •Вывод массива в Паскале
- •37. Простой и составной операторы
29. Операторы break и continue
Бывает, что цель выполнения цикла достигается раньше, чем он будет прекращен по условию выхода. Так, например, в программе для определения простоты числа цикл будет выполняться n div 2-1 раз, хотя то, что число не является простым, может быть обнаружено на первых шагах цикла. Чтобы уменьшить количество шагов цикла, можно воспользоваться оператором goto, либо сформировать сложное условие выполнения (прекращения) цикла.
Однако существуют специальные операторы, использующиеся для прерывания хода выполнения цикла. Оператор break выполняет полный выход из цикла, т.е. все возможные итерации цикла прерываются. Оператор continue прерывает только текущую итерацию. Break и continue являются процедурами, хотя обычно их называют операторами.
Операторы break и continue выполняются в любом из видов циклов (repeat, while, for) и действительны только для внутреннего цикла. Например, если нужно обеспечить принудительный выход из двойного цикла, оператор break должен быть расположен как во внутреннем, так и во внешнем цикле. Операторы break и continueпо сути являются видоизмененными операторами goto с известной точкой, в которую осуществляется переход.
В примере у пользователя пять раз запрашивается число только в том случае, если он не вводит ноль.
var
num: real;
i: integer;
begin
for i := 1 to 5 do begin
write ('Введите число: ');
readln (num);
if num = 0 then
break;
writeln (num)
end;
readln
end.
В примере запрашиваются пять чисел и суммируются только положительные из них.
var
num, sum: real;
i: integer;
begin
sum := 0;
for i := 1 to 5 do begin
write ('Введите число: ');
readln (num);
if num < 0 then
continue;
sum := sum + num
end;
write (sum:10:2);
readln
end.
30. Команда break используется для выхода из текущего цикла.
Команда break может находиться в любом месте программы, однако обычно break ставиться в теле операторов while или do... while.
Пример 1.
#include < iostream.h >
#include < stdlib.h >
main()
{exit(0); //заставляет программу завершиться в этом месте
cout <<" С помощью C++ можно составлять высоко эффективные программы. \n";
cout <<" Удачи Вам. \n";
return 0;
}
На первый взгляд кажется, что эта программа выдаст на экран несколько сообщений.
Но это заблуждение, т.к. функция exit в начале программы приведет к ее прерыванию.
Пример 2.
#include <iostream.h>
#include <stdlib.h>
// Проверка пароля, пользователю предоставляется 3 попытки.
main()
{
int nash_p=4321; // пароль int k=0; // количество попыток
int ego_p; // пароль введенный пользователем
do
{
cout <<"Введите пароль \n";
cin>> ego_p;
k++;
if (ego_p=nash_p)
{
cout <<"\n\nДобро пожаловать в программу !! ";
exit(0);
}
else
{
(k<3) ? (cout <<"\n Пароль не верен !!\n Попробуйте еще раз !! ");
(cout <<"\n Пароль не верен !!");
}
}
while (k<3);
return 0;
}
Если пользователь ввел верный пароль, программа заканчивает свою работу с кодом завершения 0. В противном случае выдается сообщение о неверном пароле.
31. Оператор CONTINUE родственен оператору BREAK, но используется реже; он приводит к началу следующей итерации охватывающего цикла (FOR, WHILE, DO). В циклах WHILE и DO это означает непосредственный переход к выполнению проверочной части; в цикле FOR управление передается на шаг реинициализации. (Оператор CONTINUE применяется только в циклах, но не в переключателях. Оператор CONTINUE внутри переключателя внутри цикла вызывает выполнение следующей итерации цикла). В качестве примера приведем фрагмент, который обрабатывает только положительные элементы массива а; отрицательные значения пропускаются.
FOR (I = 0; I < N; I++) {
IF (A[I] < 0) /* SKIP NEGATIVE ELEMENTS */
CONTINUE;
... /* DO POSITIVE ELEMENTS */
}
Оператор CONTINUE часто используется, когда последующая часть цикла оказывается слишком сложной, так что рассмотрение условия, обратного проверяемому, приводит к слишком глубокому уровню вложенности программы.