Цикл Repeat - осуществляет выполнение цикла, из практически любого числа операторов, с заранее не известным количеством
итераций (повторений). Зарезервированные слова для его осуществления это
В переводе на русский
Repeat - означает - повторить, повторять;
Until - означает - до, до тех пор;
То есть вначале у нас начинается цикл и только потом проверяется условие для его выхода. Рассмотрим пример, аналогичный тому, как в статье об операторе While, а именно - заполнение массива числами от 0 до 15, при помощи цикла.
Вот как решается эта задача, при помощи цикла Repeat:
1) Разместим на форме один компонент Button, и один компонент Memo. Свойство Lines компонента Memo - очищаем;
2) Создадим обработчик событий OnClick на кнопке и запишем следующий код:
const
max=15;
var
a: array[0..max] of integer;
b: Integer;
begin
b:=0;
repeat //Начало тела цикла;
a[b]:=b;
Memo1.Lines.Add(IntToStr(a[b]));
b:=b+1; //Конец тела цикла;
until //Пока;
b>max;
end;
{В цикле Repeat, вне зависимости от того, какое значение имеет выражение, тело цикла выполняется не менее одного раза. Так, у нас вначале переменной счетчика - b присваивается нуль - (b:=0); затем он нумерует элемент массива и загружается в него - (a[b]:=b); далее он отображается в Memo - ( Memo1.Lines.Add(IntToStr(a[b])); затем переменная b - увеличивается, на единицу - (b:=b+1); .
После, выполняется проверка условия - (b>max) и если оно содержит логическое False, цикл продолжается до тех пор пока не наступит True}.
3) Запускаем проект, нажимаем на кнопку и любуемся результатом. Цикл Repeat очень похож на цикл While. Только у While - проверка выражения осуществляется перед выполнением тела цикла, а у цикла Repeat - после его выполнения.
Есть также еще одно отличие рассматриваемого нами цикла Repeat от цикла While. Тело в цикле While, выполняется когда условие верно, а в цикле Repeat - наоборот, когда не верно, и прекращается когда становится верным. Теперь обратим внимание на синтаксис. После слова Repeat до самого Until в нашем примере, у нас выполняется несколько действий. Причем выполняется не смотря на то, что они не заключены в конструкцию begin - end.
Так происходит потому, что Repeat - Until, сами по себе действуют как объединение нескольких действий и применение в них конструкции begin - end, не является обязательным. Для закрепления материала, рассмотрим еще один примерчик, как мы рассматривали с циклом While. Создадим программку, в которой мы будем задавать максимальное значение условия вводя его в Edit, а по нажатию Button, - Memo покажет нам весь прогресс изменения значений переменной a от нуля, до введенной нами цифры в Edit:
1) Разместим на форме один компонент Button, один компонент Memo и один компонент Edit;
2) В свойство Text компонента Memo, прописываем - 0, а свойство Lines компонента Memo - просто очищаем;
3) Создадим обработчик событий OnClick на кнопке и запишем следующий код:
var
a: Integer;
c: Integer;
begin
a:=0;
repeat //Начало тела цикла;
c:=1+StrToInt(Edit1.Text);
a:=a;
Memo1.Lines.Add(IntToStr(a));
a:=a+1; //Конец тела цикла;
until
a>c-1;
end;
{Комментарий к происходящему, аналогичен комментарию примера выше, только здесь у нас добавился Edit, и в теле цикла мы загружаем из него значения в переменную с}.
4) Запускаем программу, вводим в Edit любое целое положительное число, нажимаем на кнопку и любуемся результатом.
На этом наверное все о цикле Repeat, жду вас в следующих статьях.
Repeat и Until.
В переводе на русский
Repeat - означает - повторить, повторять;
Until - означает - до, до тех пор;
То есть вначале у нас начинается цикл и только потом проверяется условие для его выхода. Рассмотрим пример, аналогичный тому, как в статье об операторе While, а именно - заполнение массива числами от 0 до 15, при помощи цикла.
Вот как решается эта задача, при помощи цикла Repeat:
1) Разместим на форме один компонент Button, и один компонент Memo. Свойство Lines компонента Memo - очищаем;
2) Создадим обработчик событий OnClick на кнопке и запишем следующий код:
const
max=15;
var
a: array[0..max] of integer;
b: Integer;
begin
b:=0;
repeat //Начало тела цикла;
a[b]:=b;
Memo1.Lines.Add(IntToStr(a[b]));
b:=b+1; //Конец тела цикла;
until //Пока;
b>max;
end;
{В цикле Repeat, вне зависимости от того, какое значение имеет выражение, тело цикла выполняется не менее одного раза. Так, у нас вначале переменной счетчика - b присваивается нуль - (b:=0); затем он нумерует элемент массива и загружается в него - (a[b]:=b); далее он отображается в Memo - ( Memo1.Lines.Add(IntToStr(a[b])); затем переменная b - увеличивается, на единицу - (b:=b+1); .
После, выполняется проверка условия - (b>max) и если оно содержит логическое False, цикл продолжается до тех пор пока не наступит True}.
3) Запускаем проект, нажимаем на кнопку и любуемся результатом. Цикл Repeat очень похож на цикл While. Только у While - проверка выражения осуществляется перед выполнением тела цикла, а у цикла Repeat - после его выполнения.
Есть также еще одно отличие рассматриваемого нами цикла Repeat от цикла While. Тело в цикле While, выполняется когда условие верно, а в цикле Repeat - наоборот, когда не верно, и прекращается когда становится верным. Теперь обратим внимание на синтаксис. После слова Repeat до самого Until в нашем примере, у нас выполняется несколько действий. Причем выполняется не смотря на то, что они не заключены в конструкцию begin - end.
Так происходит потому, что Repeat - Until, сами по себе действуют как объединение нескольких действий и применение в них конструкции begin - end, не является обязательным. Для закрепления материала, рассмотрим еще один примерчик, как мы рассматривали с циклом While. Создадим программку, в которой мы будем задавать максимальное значение условия вводя его в Edit, а по нажатию Button, - Memo покажет нам весь прогресс изменения значений переменной a от нуля, до введенной нами цифры в Edit:
1) Разместим на форме один компонент Button, один компонент Memo и один компонент Edit;
2) В свойство Text компонента Memo, прописываем - 0, а свойство Lines компонента Memo - просто очищаем;
3) Создадим обработчик событий OnClick на кнопке и запишем следующий код:
var
a: Integer;
c: Integer;
begin
a:=0;
repeat //Начало тела цикла;
c:=1+StrToInt(Edit1.Text);
a:=a;
Memo1.Lines.Add(IntToStr(a));
a:=a+1; //Конец тела цикла;
until
a>c-1;
end;
{Комментарий к происходящему, аналогичен комментарию примера выше, только здесь у нас добавился Edit, и в теле цикла мы загружаем из него значения в переменную с}.
4) Запускаем программу, вводим в Edit любое целое положительное число, нажимаем на кнопку и любуемся результатом.
На этом наверное все о цикле Repeat, жду вас в следующих статьях.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.