Pętla FOR to rozszerzenie pętli WHILE. Podobnie jak w pętli WHILE mamy fragment kodu i warunek pętli. Analogicznie jak w przypadku pętli WHILE pętla FOR będzie się wykonywał tak długo, jak długo ten warunek jest prawdziwy. W pętli FOR mamy jednak ponadto możliwość deklarowania zmiennych pętli oraz instrukcji inkrementacji tych zmiennych. Ogólna postać pętli FOR jest następująca:
for({deklaracje zmiennych};{warunek pętli};{instrukcje inkrementacji}) { {ciało pętli} }
W sekcjach {deklaracje zmiennych} oraz {instrukcje inkrementacji} możemy umieścić dowolną instrukcję, jednak ich przeznaczenie jest takie jakie wynika z nazwy. Obydwie sekcje mogą być ponadto zupełnie puste. Jeśli są one puste, to pętla FOR ma działanie identyczne jak pętla WHILE. Pętla:
for( ; {warunek pętli} ; ) { {ciało pętli} }
jest odpowiednikiem pętli:
while( {warunek pętli} ) { {ciało pętli} }
Wykonanie pętli FOR zaczyna się od wykonania kodu z sekcji {deklaracje zmiennych}. Kod ten wykonuje się zawsze dokładnie raz, niezależnie od tego ile razy wykona się ciało pętli. Jest to nijako kod inicjalizacji pętli.
Po wykonaniu sekcji {deklaracje zmiennych} obliczana jest wartość wyrażenia z sekcji {warunek pętli}. Jeśli wyrażenie to ma wartość true to wykonuje się {ciało pętli}. Po każdym wykonaniu ciała pętli wykonywany jest kod z sekcji {instrukcje inkrementacji}. Ciało pętli oraz instrukcje inkrementacji wykonują się cyklicznie dopóki spełniony jest warunek pętli.
Przykładowo, metodę lowerThan(…) którą w artykule „Pętle WHILE i DO-WHILE” zaimplementowaliśmy w sposób następujący:
public void lowerThan(int num) {19 int x = 0; while( x < num ) { System.out.println(x); x = x + 1; } }
możemy przy użyciu pętli FOR zaimplementować tak:
public void lowerThan(int num) { for( int x = 0 ; x < num ; x = x + 1 ) System.out.println(x); }
Podobnie jak w przypadku instrukcji IF-ELSE oraz wszystkich innych pętli, tak i w przypadku pętli FOR możemy pominąć nawiasy klamrowe obejmujące {ciało pętli}, jeśli {ciało pętli} to pojedyncza instrukcja. Skorzystaliśmy z tej możliwości w powyższym przykładzie.
Podobnie jak w przypadku pętli FOR-EACH zmienne zadeklarowane w nagłówku pętli w sekcji {deklaracje zmiennych} istnieją tylko w obrębie tej pętli, tj. próba użycia ich poza pętlą zakończy się błędem. Są to zmienne pętli i poza pętlą już po prostu nie istnieją.