Потому что именно так можно коротко и лаконично работать с массивом. Например, давайте решим такое задание: заполнить 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();
- }
В данном случае, как я писал выше, с каждой итерацией будет выполняться оператор присваивания случайного ("на самом деле псевдослучайного, но тема не об этом") числа элементу с индексом ("положением элемента в массиве"), равным номеру итератора.