Краткая справка по языку программирования Turbo Pascal

Процедуры BREAK, CONTINUE, EXIT и HALT



Процедуры BREAK, CONTINUE, EXIT и HALT

Процедура BREAK применяется для досрочного прекращения циклов WHILE, REPEAT…UNTIL и FOR.

Пример: Определение номера первого нулевого элемента в массиве А

VAR

  i, num : Integer;

  A : array[1..10] of Integer;

BEGIN

  . . . { Ввод элементов массива А }

  num := 0;

  FOR i:=1 TO 10 DO { Цикл для i от 1 до 10 }

   IF A[i]=0 THEN begin { если найден нулевой элемент }

                    num := i; { запоминаем его номер }



                    BREAK      { прекращаем цикл }

                  end;

  IF num <> 0 THEN WriteLn(num)

              ELSE

WriteLn(‘Нулевых элементов нет’);

END.

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

Пример: Определение наибольшего общего делителя (НОД) двух чисел

VAR

  CommDiv,        { кандидат в НОД }

  num1,           { первое число }

  num2 : Integer; { второе число }

BEGIN

  Write(‘Введите первое число: ’); ReadLn(num1);

  Write(‘Введите второе число: ’); ReadLn(num2);

  FOR CommDiv := num1 DOWNTO 1 DO begin

    IF (num2 mod CommDiv)<> 0 THEN

CONTINUE;

    IF (num1 mod CommDiv) = 0 THEN begin

       WriteLn(‘Наибольший общий делитель: ’, CommDiv);

       BREAK

    end {if}

end {for}

END.

В примере применен цикл FOR, в котором по убывающий перебираются возможные кандидаты в наибольший общий делитель. Критерий делимости – равенство нулю остатка от деления (операция mod). Если кандидат (значение переменной CoomDiv) не является делителем числа num2, по команде CONTINUE начинается следующий проход цикла, а операторы, оставшиеся в теле цикла, не выполняются. Если число (CommDiv) оказывается делителем числа num2 и num1, что проверяется вторым оператором IF тела цикла, значит, оно – общий делитель. А поскольку перебор идет от больших к меньшим значениям, первый найденный общий делитель – наибольший. Выводим его на печать и прерываем цикл командой BREAK.



Содержание раздела