Loops and iterators may give you the same result, but iterators are cleaner and require less code. With loops, you must be weary of the dreaded infinite loop that breaks your program. Your code may look correct, but if you forget to include the subtle and key line of syntax, a termination condition, then a fatal mistake has been made pulling you into an infite loop. Not to mention the extra lines of code required when writing loops versus that of an interator.
I may be biased, but I love writing code with the least amount of lines to minimize my mistakes, more syntax = greater chance for error. Loops are necessary at times, but I will be sure to iterate first then loop later (only if I must), infite loops are dark times.