Az adatokkal nyilván csinálsz valami értelmeset, de a ciklusváltozóval legtöbbször nem. Vagyis az i-t általában nem tartalmazza a program kimenete, csak az adat[i]-t. Szerintem ezért jött létre a for each.