Цикл For - осуществляет выполнение операций, строго заданное количество раз.
Зарезервированные слова для реализации цикла:
For, to, downto, do. Чтобы понять как работает цикл, рассмотрим простенький пример заполнения массива состоящего из пяти элементов, числами от 1 до 5.
Для этого:
1) Помещаем на форму, компоненты: 1- Button, и 1-Memo;
2) Создаем обработчик событий на кнопке и записываем следующий код:
var
a: array[1..5] of Integer;
c: Integer;
begin
For c:=1 to 5 do
begin
a[c]:=c;
Memo1.Lines.Add(IntToStr(a[c]));
end;
end;
3) Запускаем проект и наблюдаем в компоненте Memo, заполненный нами массив;
Теперь давайте разбираться, что к чему. Для облегчения понимания, традиционно предлагаю перевести рассматриваемую конструкцию
на русский язык:
For - означает - от, для, в направлении;
to - означает - к, на, до;
do - означает - выполнять, делать,
Запись c:=1 - переменная счетчик с присвоенным начальным значением 1. А цифра 5 после слова to - конечное значение. В случае с нашим примером, получаем буквально следующее:
begin
a[c]:=c; {Номер элемента массива а определяет переменная с и она же присваивается этому элементу (в данном случае это 1)}
Memo1.Lines.Add(IntToStr(a[c])); {В нулевую строку (а строки компонента Memo, нумеруются с нуля) компонента Memo заносится единица .}
end;
Далее, переменная с увеличивается еще на единицу, определяет номер второго элемента массива и присваивается ему в качестве значения (уже 2). Затем записывается в первую строку Memo. Потом, переменная с увеличивается еще на единицу, определяет уже номер третьего элемента массива, присваивается ему в качестве значения (теперь 3). Затем записывается во вторую строку компонента Memo. Снова, переменная с увеличивается на единицу, определяет номер четвертого элемента массива и присваивается ему, в качестве значения (уже 4). Затем записывается в третью строку компонента Memo. И наконец, переменная с снова увеличивается на единицу, определяет номер пятого элемента массива, присваивается ему в качестве значения (уже 5), записывается в четвертую строку компонента Memo и цикл прекращается.
Теперь по подробнее.
1) В начале вычисляются и запоминаются начальное и конечное значения c:=1 и 5 .
2) Циклу присваивается начальное значение c:=1, после чего это значение сравнивается с конечным - 5.
3) Если начальное значение меньше или равно 5, выполняются итерации цикла, где происходит увеличение начального параметра цикла (переменной с) на единицу. Затем выполняются команды прописанные после слова do, а именно:
begin
a[c]:=c;
Memo1.Lines.Add(IntToStr(a[c]));
end;
Изменение параметра цикла происходит автоматом, после каждой итерации.
4) Как только параметр цикла с превышает конечное значение 5, цикл прекращает свою работу.
Цикл For может оперировать данными не только в порядке возрастания, но и в порядке убывания. Для этого мы вместо слова to, должны воспользоваться словом downto. И если в нашем первом примере начальное значение, не должно было превышать конечное, то в случае с обратным порядком, должно быть все наоборот. Попробуем модернизировать наш код из первого примера, и сделаем теперь так, чтобы массив заполнялся с 5 до 1.
Для этого:
1) Помещаем на форму, компоненты: 1- Button, и 1-Memo;
2) Создаем обработчик событий на кнопке и записываем следующий код:
var
a: array[1..5] of Integer;
c: Integer;
begin
For c:=5 downto 1 do
begin
a[c]:=c;
Memo1.Lines.Add(IntToStr(a[c]));
end;
end;
3) Запускаем проект и видим, что наш массив, заполнился в обратном порядке; Иногда случается, что цикл необходимо завершить досрочно, или наоборот продлить его работу. Для этого в Delphi присутствуют две стандартные процедуры:
1) break - позволяет прервать работу цикла на любом его этапе.
2) continue - позволяет возобновить остановившийся цикл.
Например, для того чтобы досрочно прервать наш цикл из первого примера, в момент когда значение переменной c будет равно 3, достаточно внести в наш код следующие изменения:
var
a: array[1..5] of Integer;
c: Integer;
begin
For c:=1 to 5 do
begin
a[c]:=c;
Memo1.Lines.Add(IntToStr(a[c]));
if c=3 then
break;
end;
end;
For, to, downto, do. Чтобы понять как работает цикл, рассмотрим простенький пример заполнения массива состоящего из пяти элементов, числами от 1 до 5.
Для этого:
1) Помещаем на форму, компоненты: 1- Button, и 1-Memo;
2) Создаем обработчик событий на кнопке и записываем следующий код:
var
a: array[1..5] of Integer;
c: Integer;
begin
For c:=1 to 5 do
begin
a[c]:=c;
Memo1.Lines.Add(IntToStr(a[c]));
end;
end;
3) Запускаем проект и наблюдаем в компоненте Memo, заполненный нами массив;
Теперь давайте разбираться, что к чему. Для облегчения понимания, традиционно предлагаю перевести рассматриваемую конструкцию
For c:=1 to
5 do
For - означает - от, для, в направлении;
to - означает - к, на, до;
do - означает - выполнять, делать,
Запись c:=1 - переменная счетчик с присвоенным начальным значением 1. А цифра 5 после слова to - конечное значение. В случае с нашим примером, получаем буквально следующее:
от 1 до 5 выполнять действия ниже - прописанные между begin и end;
begin
a[c]:=c; {Номер элемента массива а определяет переменная с и она же присваивается этому элементу (в данном случае это 1)}
Memo1.Lines.Add(IntToStr(a[c])); {В нулевую строку (а строки компонента Memo, нумеруются с нуля) компонента Memo заносится единица .}
end;
Далее, переменная с увеличивается еще на единицу, определяет номер второго элемента массива и присваивается ему в качестве значения (уже 2). Затем записывается в первую строку Memo. Потом, переменная с увеличивается еще на единицу, определяет уже номер третьего элемента массива, присваивается ему в качестве значения (теперь 3). Затем записывается во вторую строку компонента Memo. Снова, переменная с увеличивается на единицу, определяет номер четвертого элемента массива и присваивается ему, в качестве значения (уже 4). Затем записывается в третью строку компонента Memo. И наконец, переменная с снова увеличивается на единицу, определяет номер пятого элемента массива, присваивается ему в качестве значения (уже 5), записывается в четвертую строку компонента Memo и цикл прекращается.
Теперь по подробнее.
1) В начале вычисляются и запоминаются начальное и конечное значения c:=1 и 5 .
2) Циклу присваивается начальное значение c:=1, после чего это значение сравнивается с конечным - 5.
3) Если начальное значение меньше или равно 5, выполняются итерации цикла, где происходит увеличение начального параметра цикла (переменной с) на единицу. Затем выполняются команды прописанные после слова do, а именно:
begin
a[c]:=c;
Memo1.Lines.Add(IntToStr(a[c]));
end;
Изменение параметра цикла происходит автоматом, после каждой итерации.
4) Как только параметр цикла с превышает конечное значение 5, цикл прекращает свою работу.
Цикл For может оперировать данными не только в порядке возрастания, но и в порядке убывания. Для этого мы вместо слова to, должны воспользоваться словом downto. И если в нашем первом примере начальное значение, не должно было превышать конечное, то в случае с обратным порядком, должно быть все наоборот. Попробуем модернизировать наш код из первого примера, и сделаем теперь так, чтобы массив заполнялся с 5 до 1.
Для этого:
1) Помещаем на форму, компоненты: 1- Button, и 1-Memo;
2) Создаем обработчик событий на кнопке и записываем следующий код:
var
a: array[1..5] of Integer;
c: Integer;
begin
For c:=5 downto 1 do
begin
a[c]:=c;
Memo1.Lines.Add(IntToStr(a[c]));
end;
end;
3) Запускаем проект и видим, что наш массив, заполнился в обратном порядке; Иногда случается, что цикл необходимо завершить досрочно, или наоборот продлить его работу. Для этого в Delphi присутствуют две стандартные процедуры:
1) break - позволяет прервать работу цикла на любом его этапе.
2) continue - позволяет возобновить остановившийся цикл.
Например, для того чтобы досрочно прервать наш цикл из первого примера, в момент когда значение переменной c будет равно 3, достаточно внести в наш код следующие изменения:
var
a: array[1..5] of Integer;
c: Integer;
begin
For c:=1 to 5 do
begin
a[c]:=c;
Memo1.Lines.Add(IntToStr(a[c]));
if c=3 then
break;
end;
end;
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.