var
index:integer;
begin index:=0;
while index<10 do index:=index+l;
end;
В этом примере мы объявляем переменную index. В первой строке кода присваиваем ей 0. После этого запускается цикл. В условии записан код— index<io. Это значит, что будет выполняться следующее действие (index: =index+i), пока переменная index меньше 10.
В данном случае в качестве счетчика используется переменная index и цикл выполняется, пока верно условие. В отличие от цикла for, этот цикл не увеличивает автоматически счетчик, поэтому мы должны это сделать самостоятельно.
В цикле while также выполняется только одно действие. Если вы захотите выполнить в цикле сразу два действия, то должны заключить их в операторные скобки begin И end.
Давайте перепишем предыдущий пример, но с использованием цикла while. Измените код по нажатии кнопки (событие onclick) на код, показанный в листинге:
procedure TFormi.CalculateButtonclick(Sender: TObj ect); var
index:Integer; sum: Integer; EndCount:Integer; begin Sum: =0; index:=0;
EndCount:=StrToInt(EndEdit.Text);
while index<EndCount do begin
Sum: = Sum+index;
index:=index+l; end;
ResuitEdit.Text:=IntToStr(Sum); end;
В данном примере надо обнулять не только переменную sum, но и index, чтобы начальное значение было равно нулю, и цикл шел от нуля до введенного значения. Обратите также внимание на то, что здесь нужно самостоятельно увеличивать переменную index (index: =index+i). Для этого данная строка добавлена в цикл. Она объединена с расчетом суммы при помощи операторных скобок begin и end.
Попробуйте запустить программу и ввести число 5. Результатом расчета будет 10. Если вы помните предыдущий пример, там результат был 15. .В чем проблема? Почему разные результаты? В прошлом примере мы выполняли цикл от 0 до 5 включительно. Здесь будет выполняться цикл от 0 и до того момента, пока выполняется условие index<5. Когда index=5, условие не выполнится, и расчет с цифрой 5 не будет производиться.
Для решения этой проблемы можно поменять условие цикла на index<=5 (переменная index меньше или равна EndCount). В этом случае расчет с цифрой 5 также будет произведен. Или можно вводить цифру 6.