while-loop

¿Hay casos en los que while / do-while debe usarse en lugar de for?

Este es un largo debate entre mi maestro y yo. ¿Puede haber una situación en la que un bucle for absolutamente no pueda usars ... specífico donde un bucle for-no funcionará en lugar de un bucle while; es while/do-while ¿de alguna manera "distinto" de for?

¿Cómo puedo reemplazar los bucles while con una alternativa de programación funcional sin optimización de llamadas de cola?

Estoy experimentando con un estilo más funcional en mi JavaScript; por lo tanto, he reemplazado los bucles for con funciones ... ramando en un estilo funcional y no tengo acceso a la optimización de llamadas de cola, entonces cuál es la mejor estrategia.