ループ処理のfor文は、非プログラマがつまづく可能性の非常に高い部分だと思います。
何よりも、構文の書き方が、初心者には分かり難いです。もう少し、どうにかならなかったのかなあと思います。
そういう意味では、while文が一番シンプルでよいのですが、使用はfor文の方が圧倒的に多いです。
結局、配列に対する処理がほとんどだから、そうなるのだろうなと思います。