@ami: biegnąc na 800 metrów też zatrzymujesz się co metr i sprawdzasz ile już przebiegłeś czy patrzysz na linie oznaczające pewne wartości z góry ustalone (co 100m)?

Pętla for ma właśnie po to licznik, by ustalać w nim wielkość kroku i stosowanie tam zawsze ++i jest marnowaniem potencjału oraz obniżaniem wydajności

Na jednym kroku z $i+=20 zyskujesz około 39 cykli zegara (20 pętli if oraz 19 inkrementacji) w stosunku do $i++