Цикл While – это цикл, с предусловием. То есть вначале задается некоторое условие, например условие А, и если оно соответствует истине (true) то начинает выполняться тело цикла Б. И выполняется оно будет до тех пор, пока заданное нами условие А, не примет значение - false.
Для реализации цикла While существуют два специально зарезервированных слова - While и do, давайте разберемся что же это за слова такие. В переводе с английского: While - означает - в то время как, пока;
do - означает - делать, выполнять;
предлагаю рассмотреть построение цикла While на примере. Допустим нам необходимо заполнить одномерный массив числами. Для этого: 1) Разместим на форме один компонент Button, и один компонент Memo. Свойство Lines компонента Memo - очищаем; 2) Создадим обработчик событий OnClick на кнопке и запишем следующий код: const
max=15;
var
a: array[0..max] of integer;
b: Integer;
begin
b:=0;
while b<max+1 do //Пока b<16 выполнять тело цикла: begin a[b]:=b;
//в переменную массива a[0] присваиваем 0;
Memo1.Lines.Add(IntToStr(a[b])); //показываем в Memo содержание элемента [0] массива а; b:=b+1; //Увеличиваем переменную b на единицу, получается один; end;
end; {Далее снова выполняется проверка (while b<max+1 do ), после чего результат отображается в Memo и переменной b присваивается плюс еще одна единица (уже два). И так до тех пор, пока переменная b не перестанет соответствовать условию -
b<max+1, после чего цикл останавливается.}
3) Для того чтобы в этом убедиться, запускаем проект, нажимаем на нашу кнопку и наблюдаем, что происходит в Memo.
Еще один пример, более простой, поможет нам внести дополнительную ясность в изучение работы с циклом While. Создадим программку в которой мы будем задавать максимальное значение условия вводя его в Edit, а по нажатию Button, - Memo покажет нам весь прогресс изменения значений
переменной a от нуля, до введенной нами цифры в Edit:
1) Разместим на форме один компонент Button, один компонент Memo и один компонент Edit;
2) В cвойство Text компонента Memo, прописываем - 0, а свойство Lines компонента Memo - просто очищаем;
3) Создадим обработчик событий OnClick на кнопке и запишем следующий код: var a: Integer; c: Integer;
begin
a:=0; //Присваиваем переменной a отправное значение (в нашем случае все нумеруется с нуля);
c:=1+StrToInt(Edit1.Text); //Переменной c присваиваем значение введенное в Edit+1;
while a<c do // Проверяем, если a меньше введенного значения в Edit, выполняем тело цикла: begin a:=a; //Присваиваем a нулевое значение; Memo1.Lines.Add(IntToStr(a)); //Показываем его в Memo; a:=a+1; //Увеличиваем a на единицу (получится один); end;
end; {Снова проверяем условие
(while a<c do) и если оно истинно, a присваиваем уже увеличенную а, то есть один, показываем его в Memo, добавляем a еще одну единицу (уже получается два), снова сравниваемся с условием, и так до тех пор пока переменная а, не примет значение введенное нами в Edit}
3) Запускаем программу, вводим в Edit любое целое положительное число, нажимаем на кнопку и любуемся результатом. На этом наверное все о цикле While, жду вас в следующих статьях.
|