Цикл for не может заменить цикл while, потому что for выполяется фиксированное количество раз, а while - пока условие не изменится.
В комментариях
Никита и
seriogja указали, что заменить можно. Да, хакнуть for, чтобы он выполнялся как while можно. Но это, простите, говнокод. Нет ни одной причины насиловать синтаксис языка и мозг коллег такими конструкциями. Код должен легко читаться, именно для этого и сделано несколько типов циклов.