Через for придётся использовать оператор break. Здесь же цикл завершается, как только вводится нулевой элемент (т.к. вещественный тип представлен в компьютере приближенно, мы сравниваем не с нулём, а с 0.001 (это число может задать сам пользователь)). Ну а так могу через for написать, но решение будет неэффективное.