For:
Siempre que tengas que hacer el recorrido completo sí o sí. En este caso es así porque no vas a para antes de la iteración 10 ya que quieres sumar los 10 primeros números sin dejar ninguno.
While:
Se usa cuando cabe la posibilidad de que no haga falta llegar hasta el final del recorrido.
Por ejemplo, el usuario mete un número del 1 al 100 y, tras esto, vas a recorrer la lista de 100 números para ver si en esa lista está el número 20 (o el que tu quieras. En ese caso el FOR es malo porque el número 20 podría estar en la segunda iteración, y no haría faltar recorrer los 100 números. Así que se pone un While. El número 20 puede estar el primero o el último, o por el medio. Puedes recorrer los 100 números o no... no lo sabes.
PD: Lógicamente para el primer caso, de recorrer todo obligatoriamente, puedes usar el While... pero el FOR deja un código más limpio y luego, cuando lo veas, con el paso del tiempo, ya sabrás que ese recorrido será para hacerlo completo. Además, creo que el compilador lo gestionará mejor para optimizarlo. Pero bueno, de momento quédate con la idea que te dije antes para saber cuando usar uno u otro.