While - цикл с условием
for - цикл с известным количеством шагов (итераций)
чтобы воспользоваться for нужно знать точно количество шагов (интераций)
например, заполняем массив arr из 10 единиц типа int
for(i = 0; i < 10; i++) arr[i] = 0; // точно знаем что 10 элементов и делаем 10 интераций
если же нам не известно количество интераций цикла, например организовать ввод переменной до тех пор, пока пользователь не введет 0
сколько будет интераций - неизвестно и зависит сугубо от пользователя
int num;
do
{
cin >> num // вводим цифру
}
while(num != 0); // повторяем ввод, пока цифра не равна 0
( do while - разновидность while, в которой условие проверяется не перед первой интерацией, а после нее )
примеры представлены на c++, но в принципе и так понятно