Потому что именно так можно коротко и лаконично работать с массивом. Например, давайте решим такое задание: заполнить 100 элементов массива случайными числами. Без цикла while или for этот код займёт ни много, ни мало 100 строк и выглядело бы это вот так:
- arr[0] = rand();
- arr[1] = rand();
- ...
- arr[100] = rand();
Во-первых - это очень затрудняет читабельность кода. Во-вторых, если Вам придётся решать задачу, предполагающую ввод количества элементов, то Вы уже не сможете просто так написать N элементов, поскольку Вы не знаете, какое число даст программе человек. В таком случае Вам бы пришлось использовать рекурсивную функцию.
Вместо этого люди решили использовать цикл - то, что повторяет тело цикла i раз ("i - это итератор - счётчик цикла"). Давайте посмотрим, как будет выглядеть наша задача с циклом:
- for(int i = 0; i < 100; i++)
- {
- arr[i] = rand();
- }
В данном случае, как я писал выше, с каждой итерацией будет выполняться оператор присваивания случайного ("на самом деле псевдослучайного, но тема не об этом") числа элементу с индексом ("положением элемента в массиве"), равным номеру итератора.
Const max=24;
var M:array[1..max] of integer;
i,j,num:byte;
X:integer;
procedure readArray();
var i:byte;
begin
Write('Введите длину массива M');
Readln(num);
for i:=1 to num do begin
Write('M[',i,']=');
Readln(M[i]);
end;
Writeln();
end;
begin
readArray();
Writeln('Задача: Найти количество элементов, модуль которых меньше X');
Write('Введите X=');
Readln(X);
j:=0;
for i:=1 to num do
if Abs(M[i]) < X then
j:=j+1;
Writeln();
Writeln(j, ' элементов, модуль которых меньше ',X);
end.