Опрос

Что вас больше интересует?

  • игры для nokia
  • темы на телефон
  • программы на мобильный
  • обзоры мобильных телефонов


 

Какие игры вы предпочитаете?

  • игры для мальчиков
  • игры для девочек
  • драки
  • стрелялки
  • логические игры
  • спортивные


 

счетчики

Спонсор раздела:

Цикл с постусловием repeatuntil

Статьи

Оператор repeatuntil весьма схож со своим предшественником - циклом whiledo.

repeat <оператор> until <условие - логическое выражение>;

Основные отличия цикла repeatuntil от whiledo заключаются в следующем. Во-первых, оператор цикла repeat..until вне зависимости от логического выражения будет выполнен хотя бы один раз. Это объясняется местонахождением логического выражения: проверка условия происходит после того, как выполнилось тело цикла. Во-вторых, в отличие от цикла while..do, выход из цикла с постусловием осуществляется при истинности логического выражения. Другими словами, цикл repeat.. until будет выполняться до тех пор, пока логическое выражение не соблюдается.

X :=0;

repeat

MyArray[X]:=0; X:=X+1;

until X>=100; //выполнять, пока значение X меньше 100

Вложенные циклы

Один из приемов работы с циклами - использование вложенных циклов. В этом случае в теле одного цикла выполняется другой. Следующий пример предлагает способ обнуления всех элементов двумерного массива A. Обращение к ячейкам массива производится в рамках двойного цикла for..do.

var A : Array[0..9, 0..9] of Integer;

x, y : byte; begin

for x:=0 to 9 do

for y:=0 to 9 do A[x, y]:=0;

end;

Процедуры break и continue

Изучение циклов было бы логически незавершенным без рассмотрения процедур прерывания текущей итерации цикла (break) и внеочередного начала следующей итерации (continue).

procedure break; procedure continue;

Рассмотрим такой пример:

var Accept : boolean;

Counter : Integer; begin

Accept:=true; Counter:=0; while Accept=true do begin

Counter:=Counter+1; Accept:=<выражение>; if Counter>10 then break; end;

end;

Цикл будет прерван, когда значение переменной-счетчика (counter) превысит 10.

Другой пример. Необходимо подсчитать сумму четных чисел, входящих в диапазон от 0 до 10. Для этого воспользуемся процедурой Continue() и функцией Odd(), определяющей четное или нечетное число.

function Odd(X: Longint): Boolean; //X нечетное - результат true, иначе - false

var Counter, Sum : Integer;

begin

Sum:=0;

for Counter:=0 to 10 do begin

if Odd(Counter)=true then Continue; Sum:=Sum+Counter;

end;

Write(Sum);

ReadLn;

end;

Если переменная counter принимает четное значение, выполняется выражение sum := sum + counter, в противном случае метод Continue() принуждает цикл начать новую итерацию (досрочно увеличивает счетчик counter на 1).


Следующие статьи:
Предыдущие статьи:

Добавить комментарий


Защитный код
Обновить