A colleague once said that God is killing a kitten every time I write a for-loop.
When asked how to avoid for-loops, his answer was to use a functional language. However
Your colleague is not right. For loops are not bad per se. They are clean, readable and not particularly error prone.