В цикле for начальное значение, условие работы и приращение связаны с номерами итераций; однако, если количество итераций не определено или не имеет важного значения, то лучше использовать цикл while. При использовании цикла while необходимо просто задать условие, при котором он должен работать:
while (<условие работы>) {
<тело цикла>;
}
Для иллюстрации работы цикла while рассмотрим следующую задачу. Предположим, что кому-то нужно накопить 300 000 рублей на покупку машины, и он периодически кладет деньги в копилку; когда будет накоплено 300 000 рублей или больше, «говорящая» копилка должна сообщить, что денег на покупку достаточно. Описанную ситуацию моделирует код, использующий цикл while:
//Цена автомобиля
const float price = 300000;
printf("Машина стоит %g рублей.\n", price);
//Накопленная сумма
float total = 0;
//Принимем деньги, пока их меньше 300000
while (total < price) {
printf("\nВ копилке %g рублей.\n", total);
printf("Сколько еще положить?\n");
float money;
scanf("%f", &money);
total += money;
}
//Требуемая сумма накоплена
printf("\nВ копилке %g рублей\n",total);
printf("Вы накопили на машину.\n");
Работа программы «Копилка» выглядит так: