Posłuchaj... Pętla for działa tak, że masz 3 wyrażenia oddzielone dwoma średnikami:
for (inicjalizacja ; warunek_wykonania; inkrementacja) { cialo }
Program wchodzi do pętli for i wykonuje pierwsze dwa z nich na początku - najpierw inicjalizację. Potem sprawdza warunek i jeśli został spełniony to wykonuje ciało pętli. Następnie po wykonaniu ciała wykonuje inkrementację (lub cokolwiek innego tam napisałeś) i następnie przechodzi do następnego obiegu pętli, sprawdza czy warunek prawdziwy, jeśli tak to wykonaj, inkrementacja, następny obieg, warunek itd itd...
W takim razie "y += 2" wykona się dopiero PO pierwszym obiegu pętli, zaraz przed sprawdzeniem warunku, by przejść do drugiego obiegu.